.aircraft-detail-panel-3d{position:absolute;top:80px;left:16px;z-index:1000;animation:aircraftCardSlideIn .2s ease-out}@keyframes aircraftCardSlideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.aircraft-detail-card{width:320px;max-height:calc(100vh - 160px);background:var(--bg-secondary, #1f2937);border-radius:12px;box-shadow:0 8px 32px #0006;overflow:hidden;display:flex;flex-direction:column;color:#fff}.leaflet-popup-content .aircraft-detail-card{width:280px;max-height:420px;box-shadow:none;border-radius:8px;margin:0;overflow-y:auto}.leaflet-popup-content-wrapper:has(.aircraft-detail-card){padding:0!important;background:var(--bg-secondary, #1f2937)!important;box-shadow:0 4px 20px #0006;border-radius:12px;overflow:hidden}.leaflet-popup-content:has(.aircraft-detail-card){margin:0!important;width:auto!important}.leaflet-popup-tip-container:has(~.leaflet-popup-content-wrapper .aircraft-detail-card){display:none}.leaflet-popup:has(.aircraft-detail-card) .leaflet-popup-close-button{display:none}.aircraft-photo-container{position:relative;width:100%;height:160px;background:linear-gradient(135deg,#0f172a,#1e293b);overflow:hidden;flex-shrink:0}.aircraft-photo{width:100%;height:100%;object-fit:cover;display:block}.aircraft-photo-credit{position:absolute;bottom:4px;right:6px;font-size:9px;color:#ffffff80;background:#00000080;padding:2px 6px;border-radius:3px}.aircraft-photo-skeleton{width:100%;height:100%;background:linear-gradient(90deg,#ffffff08 25%,#ffffff14,#ffffff08 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.aircraft-photo-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#ffffff4d}.aircraft-photo-placeholder svg{width:48px;height:48px;opacity:.4}.aircraft-photo-placeholder-text{font-size:11px;color:#ffffff40}.aircraft-detail-header{display:flex;align-items:flex-start;gap:10px;padding:12px}.aircraft-detail-icon{font-size:22px;flex-shrink:0;line-height:1}.aircraft-detail-identity{flex:1;min-width:0}.aircraft-detail-callsign{font-size:15px;font-weight:700;line-height:1.3}.aircraft-detail-secondary-id{font-size:11px;color:#94a3b8;margin-top:1px}.aircraft-detail-close{background:#0000004d;border:none;color:#fff;width:24px;height:24px;border-radius:4px;cursor:pointer;font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .2s}.aircraft-detail-close:hover{background:#00000080}.aircraft-detail-type{margin:0 12px 8px;padding:8px 10px;background:#ffffff0f;border-radius:6px;font-size:12px}.aircraft-detail-type-name{font-weight:600;color:#e2e8f0}.aircraft-detail-operator{color:#94a3b8;margin-top:2px}.aircraft-detail-typecode{display:inline-block;margin-top:4px;padding:1px 6px;background:#3b82f626;border:1px solid rgba(59,130,246,.25);border-radius:4px;font-size:10px;font-weight:600;color:#60a5fa;font-family:SF Mono,Monaco,Courier New,monospace}.aircraft-detail-telemetry{padding:10px 14px 14px;display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;font-size:12px}.aircraft-telemetry-item{display:flex;flex-direction:column;min-width:0}.aircraft-telemetry-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#f97316;margin-bottom:2px}.aircraft-telemetry-value{font-weight:600;color:#f1f5f9;font-size:14px}.aircraft-telemetry-unit{font-weight:400;color:#94a3b8;font-size:11px}.aircraft-detail-badges{padding:0 12px 12px;display:flex;flex-direction:column;gap:6px}.aircraft-badge{padding:6px 10px;border-radius:6px;font-size:11px;font-weight:600;text-align:center}.aircraft-badge-emergency{background:#dc262626;border:1px solid rgba(220,38,38,.4);color:#fca5a5}.aircraft-badge-helicopter{background:#3b82f61a;border:1px solid rgba(59,130,246,.3);color:#93c5fd}.aircraft-badge-ground{background:#6b728026;border:1px solid rgba(107,114,128,.3);color:#9ca3af;font-style:italic}.aircraft-badge-stale{background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);color:#fbbf24;font-size:10px}.aircraft-detail-actions{padding:8px 12px 12px;border-top:1px solid rgba(255,255,255,.08)}.aircraft-follow-btn{width:100%;padding:8px 14px;border-radius:6px;border:none;cursor:pointer;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .2s;color:#fff}.aircraft-follow-btn.follow{background:#3b82f6}.aircraft-follow-btn.follow:hover{background:#2563eb}.aircraft-follow-btn.unfollow{background:#ef4444}.aircraft-follow-btn.unfollow:hover{background:#dc2626}.aircraft-ride-along-btn{width:100%;padding:8px 14px;border-radius:6px;border:none;cursor:pointer;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .2s;color:#fff;background:linear-gradient(135deg,#f59e0b,#d97706);margin-top:6px}.aircraft-ride-along-btn:hover{background:linear-gradient(135deg,#d97706,#b45309);box-shadow:0 0 12px #f59e0b4d}@media(max-width:480px){.aircraft-detail-panel-3d{left:8px;right:8px;top:60px}.aircraft-detail-card{width:auto;max-height:calc(100vh - 120px)}.aircraft-photo-container{height:130px}}.marker-icon{background-color:#fff;border:1px solid #3388ff;border-radius:50%;margin:-8px 0 0 -8px!important;width:14px!important;height:14px!important;outline:0;transition:opacity ease .3s}.marker-icon-middle{opacity:.7;margin:-6px 0 0 -6px!important;width:10px!important;height:10px!important}.leaflet-pm-draggable{cursor:move!important}.cursor-marker{cursor:crosshair;pointer-events:none;opacity:0}.cursor-marker.visible{opacity:1!important}.geoman-draw-cursor,.geoman-draw-cursor .leaflet-interactive{cursor:crosshair}.rect-style-marker,.rect-start-marker{opacity:0}.rect-style-marker.visible,.rect-start-marker.visible{opacity:1!important}.vertexmarker-disabled{opacity:.7}.pm-text-marker{width:0;height:0}.pm-textarea{box-sizing:content-box;background-color:#fff;color:#000;resize:none;border:none;outline:0;cursor:pointer;border-radius:3px;padding-left:7px;padding-bottom:0;padding-top:4px}.leaflet-pm-draggable .pm-textarea{cursor:move}.pm-textarea:focus,.pm-textarea:focus-within,.pm-textarea:focus-visible,.pm-textarea:active{border:2px solid #000;outline:0}.pm-textarea.pm-disabled{border:none;-webkit-user-select:none;user-select:none}.pm-textarea.pm-hasfocus{cursor:auto}.leaflet-pm-toolbar .leaflet-buttons-control-button{padding:5px;box-sizing:border-box;position:relative;z-index:3}.leaflet-pm-toolbar .leaflet-pm-actions-container a.leaflet-pm-action:first-child:not(.pos-right),.leaflet-pm-toolbar .leaflet-pm-actions-container a.leaflet-pm-action:last-child.pos-right{border-radius:0}.leaflet-pm-toolbar .button-container a.leaflet-buttons-control-button{border-radius:0}.leaflet-pm-toolbar .button-container:last-child a.leaflet-buttons-control-button{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-pm-toolbar .button-container:first-child a.leaflet-buttons-control-button{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-pm-toolbar .button-container:last-child a.leaflet-buttons-control-button{border-bottom:none}.leaflet-pm-toolbar .control-fa-icon{font-size:19px;line-height:24px}.leaflet-pm-toolbar .control-icon{width:100%;height:100%;box-sizing:border-box;background-size:contain;background-repeat:no-repeat;background-position:center center}.leaflet-pm-toolbar .leaflet-pm-icon-marker{background-image:url('data:image/svg+xml,<?xml version="1.0" encoding="UTF-8"?>%0A<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">%0A    <!-- Generator: Sketch 52.5 (67469) - http://www.bohemiancoding.com/sketch -->%0A    <title>Atoms/Icons/Tools/Marker</title>%0A    <desc>Created with Sketch.</desc>%0A    <defs>%0A        <path d="M15.5,24.8782959 C15.2909201,24.8772219 15.1744857,24.8467817 14.6590866,24.2354163 C10.2196955,19.4118054 8,15.5014392 8,12.5043177 C8,8.35979746 11.3578644,5 15.5,5 C19.6421356,5 23,8.35979746 23,12.5043177 C23,17 18.2878217,21.9268378 16.3336601,24.2440186 C15.8224622,24.8501802 15.7090799,24.8793699 15.5,24.8782959 Z M15.5,15.5326948 C17.275201,15.5326948 18.7142857,14.1180004 18.7142857,12.3728864 C18.7142857,10.6277723 17.275201,9.21307792 15.5,9.21307792 C13.724799,9.21307792 12.2857143,10.6277723 12.2857143,12.3728864 C12.2857143,14.1180004 13.724799,15.5326948 15.5,15.5326948 Z" id="path-1"></path>%0A    </defs>%0A    <g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">%0A        <g id="Atoms/Icons/Tools/Marker" transform="translate(-3.000000, -3.000000)">%0A            <mask id="mask-2" fill="white">%0A                <use xlink:href="%23path-1"></use>%0A            </mask>%0A            <use id="Mask" fill="%235B5B5B" fill-rule="nonzero" xlink:href="%23path-1"></use>%0A        </g>%0A    </g>%0A</svg>')}.leaflet-pm-toolbar .leaflet-pm-icon-polygon{background-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24">%0A  <defs>%0A    <path id="polygon-a" d="M19.4206892,9.16509725 C19.1523681,8.66992914 19,8.10275831 19,7.5 C19,5.56700338 20.5670034,4 22.5,4 C24.4329966,4 26,5.56700338 26,7.5 C26,9.26323595 24.6961471,10.7219407 23,10.9645556 L23,19.0354444 C24.6961471,19.2780593 26,20.736764 26,22.5 C26,24.4329966 24.4329966,26 22.5,26 C20.736764,26 19.2780593,24.6961471 19.0354444,23 L10.9645556,23 C10.7219407,24.6961471 9.26323595,26 7.5,26 C5.56700338,26 4,24.4329966 4,22.5 C4,20.5670034 5.56700338,19 7.5,19 C8.10275831,19 8.66992914,19.1523681 9.16509725,19.4206892 L19.4206892,9.16509725 Z M20.8349073,10.5793063 L10.5793108,20.8349027 C10.6086731,20.8890888 10.6366469,20.9441372 10.6631844,21 L19.3368156,21 C19.6825775,20.272154 20.272154,19.6825775 21,19.3368156 L21,10.6631844 C20.9441372,10.6366469 20.8890888,10.6086731 20.8349027,10.5793108 Z M22.5,9 C23.3284271,9 24,8.32842712 24,7.5 C24,6.67157288 23.3284271,6 22.5,6 C21.6715729,6 21,6.67157288 21,7.5 C21,8.32842712 21.6715729,9 22.5,9 Z M22.5,24 C23.3284271,24 24,23.3284271 24,22.5 C24,21.6715729 23.3284271,21 22.5,21 C21.6715729,21 21,21.6715729 21,22.5 C21,23.3284271 21.6715729,24 22.5,24 Z M7.5,24 C8.32842712,24 9,23.3284271 9,22.5 C9,21.6715729 8.32842712,21 7.5,21 C6.67157288,21 6,21.6715729 6,22.5 C6,23.3284271 6.67157288,24 7.5,24 Z"/>%0A  </defs>%0A  <g fill="none" fill-rule="evenodd" transform="translate(-3 -3)">%0A    <mask id="polygon-b" fill="%23fff">%0A      <use xlink:href="%23polygon-a"/>%0A    </mask>%0A    <use fill="%235B5B5B" fill-rule="nonzero" xlink:href="%23polygon-a"/>%0A    <g fill="%235B5B5B" mask="url(%23polygon-b)">%0A      <rect width="30" height="30"/>%0A    </g>%0A  </g>%0A</svg>%0A')}.leaflet-pm-toolbar .leaflet-pm-icon-polyline{background-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24">%0A  <defs>%0A    <path id="line-a" d="M9.16509725,19.4206892 L18.4206892,10.1650973 C18.1523681,9.66992914 18,9.10275831 18,8.5 C18,6.56700338 19.5670034,5 21.5,5 C23.4329966,5 25,6.56700338 25,8.5 C25,10.4329966 23.4329966,12 21.5,12 C20.8972417,12 20.3300709,11.8476319 19.8349027,11.5793108 L10.5793108,20.8349027 C10.8476319,21.3300709 11,21.8972417 11,22.5 C11,24.4329966 9.43299662,26 7.5,26 C5.56700338,26 4,24.4329966 4,22.5 C4,20.5670034 5.56700338,19 7.5,19 C8.10275831,19 8.66992914,19.1523681 9.16509725,19.4206892 Z M21.5,10 C22.3284271,10 23,9.32842712 23,8.5 C23,7.67157288 22.3284271,7 21.5,7 C20.6715729,7 20,7.67157288 20,8.5 C20,9.32842712 20.6715729,10 21.5,10 Z M7.5,24 C8.32842712,24 9,23.3284271 9,22.5 C9,21.6715729 8.32842712,21 7.5,21 C6.67157288,21 6,21.6715729 6,22.5 C6,23.3284271 6.67157288,24 7.5,24 Z"/>%0A  </defs>%0A  <g fill="none" fill-rule="evenodd" transform="translate(-3 -3)">%0A    <mask id="line-b" fill="%23fff">%0A      <use xlink:href="%23line-a"/>%0A    </mask>%0A    <use fill="%235B5B5B" fill-rule="nonzero" xlink:href="%23line-a"/>%0A    <g fill="%235B5B5B" mask="url(%23line-b)">%0A      <rect width="30" height="30"/>%0A    </g>%0A  </g>%0A</svg>%0A')}.leaflet-pm-toolbar .leaflet-pm-icon-circle{background-image:url('data:image/svg+xml,<?xml version="1.0" encoding="UTF-8"?>%0A<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">%0A    <!-- Generator: Sketch 52.5 (67469) - http://www.bohemiancoding.com/sketch -->%0A    <title>Atoms/Icons/Tools/Circle</title>%0A    <desc>Created with Sketch.</desc>%0A    <defs>%0A        <path d="M18.2897751,6.78602275 C18.8924131,6.29464981 19.661797,6 20.5,6 C22.4329966,6 24,7.56700338 24,9.5 C24,10.338203 23.7053502,11.1075869 23.2139772,11.7102249 C23.719599,12.8712053 24,14.1528571 24,15.5 C24,20.7467051 19.7467051,25 14.5,25 C9.25329488,25 5,20.7467051 5,15.5 C5,10.2532949 9.25329488,6 14.5,6 C15.8471429,6 17.1287947,6.28040098 18.2897751,6.78602275 Z M17.1504228,8.4817586 C16.3263581,8.17039236 15.4330777,8 14.5,8 C10.3578644,8 7,11.3578644 7,15.5 C7,19.6421356 10.3578644,23 14.5,23 C18.6421356,23 22,19.6421356 22,15.5 C22,14.5669223 21.8296076,13.6736419 21.5182414,12.8495772 C21.1960383,12.9473968 20.8541622,13 20.5,13 C18.5670034,13 17,11.4329966 17,9.5 C17,9.14583778 17.0526032,8.80396169 17.1504228,8.4817586 Z M14.5,17 C13.6715729,17 13,16.3284271 13,15.5 C13,14.6715729 13.6715729,14 14.5,14 C15.3284271,14 16,14.6715729 16,15.5 C16,16.3284271 15.3284271,17 14.5,17 Z M20.5,11 C21.3284271,11 22,10.3284271 22,9.5 C22,8.67157288 21.3284271,8 20.5,8 C19.6715729,8 19,8.67157288 19,9.5 C19,10.3284271 19.6715729,11 20.5,11 Z" id="path-1"></path>%0A    </defs>%0A    <g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">%0A        <g id="Atoms/Icons/Tools/Circle" transform="translate(-3.000000, -3.000000)">%0A            <mask id="mask-2" fill="white">%0A                <use xlink:href="%23path-1"></use>%0A            </mask>%0A            <use id="Mask" fill="%235B5B5B" fill-rule="nonzero" xlink:href="%23path-1"></use>%0A            <g id="Atoms/Color/Grey" mask="url(%23mask-2)" fill="%235B5B5B">%0A                <rect id="Rectangle" x="0" y="0" width="30" height="30"></rect>%0A            </g>%0A        </g>%0A    </g>%0A</svg>')}.leaflet-pm-toolbar .leaflet-pm-icon-circle-marker{background-image:url('data:image/svg+xml,<?xml version="1.0" encoding="UTF-8"?>%0A%0A<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" stroke="%235B5B5B" stroke-width="8"%0A     fill="none">%0A<circle cx="50" cy="50" r="35"/>%0A  <circle cx="50" cy="50" r="3" fill="%235B5B5B"/>%0A</svg>')}.leaflet-pm-toolbar .leaflet-pm-icon-rectangle{background-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24">%0A  <defs>%0A    <path id="rectangle-a" d="M23,10.9645556 L23,19.0354444 C24.6961471,19.2780593 26,20.736764 26,22.5 C26,24.4329966 24.4329966,26 22.5,26 C20.736764,26 19.2780593,24.6961471 19.0354444,23 L10.9645556,23 C10.7219407,24.6961471 9.26323595,26 7.5,26 C5.56700338,26 4,24.4329966 4,22.5 C4,20.736764 5.30385293,19.2780593 7,19.0354444 L7,10.9645556 C5.30385293,10.7219407 4,9.26323595 4,7.5 C4,5.56700338 5.56700338,4 7.5,4 C9.26323595,4 10.7219407,5.30385293 10.9645556,7 L19.0354444,7 C19.2780593,5.30385293 20.736764,4 22.5,4 C24.4329966,4 26,5.56700338 26,7.5 C26,9.26323595 24.6961471,10.7219407 23,10.9645556 Z M21,10.6631844 C20.272154,10.3174225 19.6825775,9.72784598 19.3368156,9 L10.6631844,9 C10.3174225,9.72784598 9.72784598,10.3174225 9,10.6631844 L9,19.3368156 C9.72784598,19.6825775 10.3174225,20.272154 10.6631844,21 L19.3368156,21 C19.6825775,20.272154 20.272154,19.6825775 21,19.3368156 L21,10.6631844 Z M7.5,9 C8.32842712,9 9,8.32842712 9,7.5 C9,6.67157288 8.32842712,6 7.5,6 C6.67157288,6 6,6.67157288 6,7.5 C6,8.32842712 6.67157288,9 7.5,9 Z M22.5,9 C23.3284271,9 24,8.32842712 24,7.5 C24,6.67157288 23.3284271,6 22.5,6 C21.6715729,6 21,6.67157288 21,7.5 C21,8.32842712 21.6715729,9 22.5,9 Z M22.5,24 C23.3284271,24 24,23.3284271 24,22.5 C24,21.6715729 23.3284271,21 22.5,21 C21.6715729,21 21,21.6715729 21,22.5 C21,23.3284271 21.6715729,24 22.5,24 Z M7.5,24 C8.32842712,24 9,23.3284271 9,22.5 C9,21.6715729 8.32842712,21 7.5,21 C6.67157288,21 6,21.6715729 6,22.5 C6,23.3284271 6.67157288,24 7.5,24 Z"/>%0A  </defs>%0A  <g fill="none" fill-rule="evenodd" transform="translate(-3 -3)">%0A    <mask id="rectangle-b" fill="%23fff">%0A      <use xlink:href="%23rectangle-a"/>%0A    </mask>%0A    <use fill="%235B5B5B" fill-rule="nonzero" xlink:href="%23rectangle-a"/>%0A    <g fill="%235B5B5B" mask="url(%23rectangle-b)">%0A      <rect width="30" height="30"/>%0A    </g>%0A  </g>%0A</svg>%0A')}.leaflet-pm-toolbar .leaflet-pm-icon-delete{background-image:url('data:image/svg+xml,<?xml version="1.0" encoding="UTF-8"?>%0A<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">%0A    <!-- Generator: Sketch 52.5 (67469) - http://www.bohemiancoding.com/sketch -->%0A    <title>Atoms/Icons/Tools/Eraser</title>%0A    <desc>Created with Sketch.</desc>%0A    <defs>%0A        <path d="M17.7874219,18.4812552 L11.6480079,13.3498184 L6.40466009,19.3816001 L10.5539156,22.9884929 L13.86934,22.9884929 L17.7874219,18.4812552 Z M16.5074252,22.9884929 L26.0000002,22.9884929 L26.0000002,24.9884929 L10.0000002,24.9884929 L9.80708313,24.9884929 L5.09254204,20.8910192 C4.25891285,20.1663564 4.17057814,18.9031112 4.89524093,18.069482 L16.0482444,5.23941916 C16.7729072,4.40578998 18.0361525,4.31745526 18.8697816,5.04211806 L24.9074583,10.2905903 C25.7410875,11.0152531 25.8294222,12.2784983 25.1047594,13.1121275 L16.5074252,22.9884929 Z" id="path-1"></path>%0A    </defs>%0A    <g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">%0A        <g id="Atoms/Icons/Tools/Eraser" transform="translate(-3.000000, -3.000000)">%0A            <mask id="mask-2" fill="white">%0A                <use xlink:href="%23path-1"></use>%0A            </mask>%0A            <use id="Combined-Shape" fill="%235B5B5B" fill-rule="nonzero" xlink:href="%23path-1"></use>%0A        </g>%0A    </g>%0A</svg>')}.leaflet-pm-toolbar .leaflet-pm-icon-edit{background-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24">%0A  <defs>%0A    <path id="edit_anchor-a" d="M13.5,11 C11.5670034,11 10,9.43299662 10,7.5 C10,5.56700338 11.5670034,4 13.5,4 C15.4329966,4 17,5.56700338 17,7.5 C17,9.43299662 15.4329966,11 13.5,11 Z M13.5,9 C14.3284271,9 15,8.32842712 15,7.5 C15,6.67157288 14.3284271,6 13.5,6 C12.6715729,6 12,6.67157288 12,7.5 C12,8.32842712 12.6715729,9 13.5,9 Z M12.0002889,7.52973893 C12.0125983,8.16273672 12.4170197,8.6996643 12.9807111,8.90767966 L3,15 L3,13 L12.0002889,7.52973893 Z M14.2172722,6.18228472 L19.453125,3 L22.6589355,3 L14.989102,7.68173885 C14.9962971,7.62216459 15,7.56151472 15,7.5 C15,6.93138381 14.6836098,6.4366645 14.2172722,6.18228472 Z M23.4434042,19.2851736 L20.1282799,19.2851736 L21.8729983,23.5349525 C21.9945296,23.8295773 21.8556546,24.1599209 21.5778734,24.2849208 L20.0414675,24.9545142 C19.7550613,25.0795141 19.4338738,24.9366704 19.3123426,24.6509518 L17.6544367,20.6154541 L14.9461873,23.4010151 C14.5852811,23.7721711 14,23.4860463 14,22.9992653 L14,9.57183533 C14,9.05933561 14.6225311,8.809492 14.946156,9.17008555 L23.8340292,18.3120179 C24.1925291,18.6613615 23.9279979,19.2851736 23.4434042,19.2851736 Z"/>%0A  </defs>%0A  <g fill="none" fill-rule="evenodd" transform="translate(-3 -3)">%0A    <mask id="edit_anchor-b" fill="%23fff">%0A      <use xlink:href="%23edit_anchor-a"/>%0A    </mask>%0A    <use fill="%235B5B5B" fill-rule="nonzero" xlink:href="%23edit_anchor-a"/>%0A    <g fill="%235B5B5B" mask="url(%23edit_anchor-b)">%0A      <rect width="30" height="30"/>%0A    </g>%0A  </g>%0A</svg>%0A')}.leaflet-pm-toolbar .leaflet-pm-icon-drag{background-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24">%0A  <defs>%0A    <path id="move-a" d="M21,14 L21,10 L27,15 L21,20 L21,16 L16,16 L16,21 L20,21 L15,27 L10,21 L14,21 L14,16 L9,16 L9,20 L3,15 L9,10 L9,14 L14,14 L14,9 L10,9 L15,3 L20,9 L16,9 L16,14 L21,14 Z"/>%0A  </defs>%0A  <g fill="none" fill-rule="evenodd" transform="translate(-3 -3)">%0A    <mask id="move-b" fill="%23fff">%0A      <use xlink:href="%23move-a"/>%0A    </mask>%0A    <use fill="%23D8D8D8" xlink:href="%23move-a"/>%0A    <g fill="%235B5B5B" mask="url(%23move-b)">%0A      <rect width="30" height="30"/>%0A    </g>%0A  </g>%0A</svg>%0A')}.leaflet-pm-toolbar .leaflet-pm-icon-cut{background-image:url('data:image/svg+xml,<?xml version="1.0" encoding="UTF-8"?>%0A<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">%0A    <!-- Generator: Sketch 52.5 (67469) - http://www.bohemiancoding.com/sketch -->%0A    <title>Atoms/Icons/Tools/Scissors</title>%0A    <desc>Created with Sketch.</desc>%0A    <defs>%0A        <path d="M12.9691574,13.4939435 L21.0317032,5.54167013 L23.4649499,5.67722957 L17.0470713,14.5106816 L27.5660336,17.1333535 L25.7891944,18.8012588 L14.5854951,17.8987506 L13.6487955,19.188007 C13.794639,19.2650958 13.9367985,19.3534417 14.0741377,19.4532245 C15.6379648,20.5894114 15.9846357,22.7782052 14.8484488,24.3420324 C13.7122619,25.9058595 11.5234681,26.2525304 9.95964096,25.1163435 C8.39581384,23.9801565 8.04914296,21.7913627 9.18532986,20.2275356 C9.74587276,19.4560145 10.5626188,18.9807475 11.4341218,18.8336407 L12.6805656,17.1180579 L12.5239724,16.3747216 L11.9506932,15.3012391 L9.89310646,14.7882251 C9.13093796,15.2357261 8.19977854,15.3966447 7.27445355,15.1659352 C5.39887519,14.698301 4.25751094,12.7987519 4.72514515,10.9231736 C5.19277935,9.04759519 7.09232846,7.90623094 8.96790682,8.37386515 C10.8434852,8.84149935 11.9848494,10.7410485 11.5172152,12.6166268 C11.4761464,12.7813449 11.4240335,12.9404001 11.3618627,13.0931999 L12.9691574,13.4939435 Z M7.75829735,13.2253438 C8.56211664,13.4257584 9.37620912,12.9366023 9.57662378,12.132783 C9.77703844,11.3289637 9.28788233,10.5148713 8.48406303,10.3144566 C7.68024373,10.1140419 6.86615126,10.603198 6.6657366,11.4070173 C6.46532194,12.2108366 6.95447805,13.0249291 7.75829735,13.2253438 Z M10.8033639,21.4031061 C10.3164266,22.0733177 10.4649998,23.0113722 11.1352115,23.4983095 C11.8054231,23.9852467 12.7434776,23.8366735 13.2304148,23.1664619 C13.7173521,22.4962502 13.5687788,21.5581957 12.8985672,21.0712585 C12.2283556,20.5843212 11.2903011,20.7328945 10.8033639,21.4031061 Z" id="path-1"></path>%0A    </defs>%0A    <g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">%0A        <g id="Atoms/Icons/Tools/Scissors" transform="translate(-3.000000, -3.000000)">%0A            <mask id="mask-2" fill="white">%0A                <use xlink:href="%23path-1"></use>%0A            </mask>%0A            <use id="Mask" fill="%235B5B5B" fill-rule="nonzero" transform="translate(16.093194, 15.663351) rotate(-32.000000) translate(-16.093194, -15.663351) " xlink:href="%23path-1"></use>%0A        </g>%0A    </g>%0A</svg>')}.leaflet-pm-toolbar .leaflet-pm-icon-snapping{background-image:url('data:image/svg+xml,<?xml version="1.0" encoding="UTF-8"?>%0A<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">%0A    <!-- Generator: Sketch 57.1 (83088) - https://sketch.com -->%0A    <title>Atoms/Icons/Tools/Magnet</title>%0A    <desc>Created with Sketch.</desc>%0A    <defs>%0A        <path d="M21.9994759,10.9428183 L21.9999985,16.3710417 C22,16.6872007 22,17.0058278 22,17.3269411 C22,21.5646545 18.6421356,25 14.5,25 C10.3578644,25 7,21.5646545 7,17.3269411 L7.00087508,10.9907507 L11.0022808,10.9984125 C11.0017033,11.6980114 11.001247,12.4168248 11.0008992,13.1554887 L11,17.3269411 C11,19.3756809 12.5876841,21 14.5,21 C16.4123159,21 18,19.3756809 18,17.3269411 C18,15.0702032 17.9995696,12.9619668 17.998539,10.9910032 L21.9994759,10.9428183 Z M10,7 C10.5522847,7 11,7.44771525 11,8 L11,10 L7,10 L7,8 C7,7.44771525 7.44771525,7 8,7 L10,7 Z M21,7 C21.5522847,7 22,7.44771525 22,8 L22,10 L18,10 L18,8 C18,7.44771525 18.4477153,7 19,7 L21,7 Z" id="path-1"></path>%0A    </defs>%0A    <g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">%0A        <g id="Atoms/Icons/Tools/Magnet" transform="translate(-3.000000, -3.000000)">%0A            <mask id="mask-2" fill="white">%0A                <use xlink:href="%23path-1"></use>%0A            </mask>%0A            <use id="Mask" fill="%235B5B5B" fill-rule="nonzero" transform="translate(14.500000, 16.000000) rotate(45.000000) translate(-14.500000, -16.000000) " xlink:href="%23path-1"></use>%0A        </g>%0A    </g>%0A</svg>')}.leaflet-pm-toolbar .leaflet-pm-icon-rotate{background-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24">%0A    <defs>%0A        <path id="rotate" d="M21.2,5.8c-0.1-0.2-0.2-0.3-0.3-0.5l-0.1-0.2c-0.1-0.2-0.2-0.3-0.3-0.5l-0.1-0.2c-0.1-0.2-0.2-0.3-0.4-0.5l-0.2-0.3l2.8-3.1L18,0.6l-4.6,0.1l0.5,4.5l0.5,4.5l3.2-3.6v0.1l0.1,0.2c0.1,0.1,0.1,0.2,0.2,0.2l0.1,0.2C18,7,18,7.1,18.1,7.2c0.3,0.7,0.6,1.4,0.7,2.1c0.2,1.4,0,2.9-0.6,4.2L18,13.9L17.9,14l-0.3,0.5l-0.1,0.2c-0.2,0.2-0.4,0.5-0.6,0.7c-0.5,0.5-1.1,1-1.7,1.3c-0.6,0.4-1.3,0.6-2.1,0.8c-0.7,0.1-1.5,0.2-2.2,0.1c-0.8-0.1-1.5-0.3-2.2-0.5c-0.7-0.3-1.3-0.7-1.9-1.2l-0.4-0.4l-0.2-0.3L6,15c-0.1-0.1-0.2-0.2-0.2-0.3l-0.3-0.4l-0.1-0.1l-0.2-0.4c0-0.1-0.1-0.1-0.1-0.2l-0.3-0.5l-0.1-0.2c-0.1-0.3-0.2-0.6-0.3-0.9c-0.2-0.8-0.3-1.6-0.3-2.4c0-0.2,0-0.3,0-0.5V8.9c0-0.2,0-0.3,0.1-0.4l0.1-0.6l0.2-0.6c0.3-0.8,0.7-1.5,1.2-2.2c0.5-0.7,1.1-1.3,1.8-1.8c0.2-0.1,0.3-0.4,0.1-0.6C7.5,2.6,7.4,2.5,7.3,2.5H7.1L7,2.6C6.1,3,5.4,3.6,4.7,4.2C4,4.9,3.5,5.7,3,6.6c-0.9,1.8-1.2,3.8-0.8,5.8c0.1,0.5,0.2,0.9,0.3,1.4l0.3,0.8C2.9,14.7,3,14.8,3,15l0.2,0.4c0,0.1,0.1,0.2,0.1,0.2l0.3,0.5c0.1,0.2,0.2,0.3,0.3,0.5l0.1,0.2c0.1,0.1,0.2,0.3,0.3,0.4L5,17.8c0.7,0.7,1.6,1.3,2.5,1.8c0.9,0.5,1.9,0.8,3,0.9c0.5,0.1,1,0.1,1.5,0.1c0.6,0,1.1,0,1.6-0.1c1-0.2,2.1-0.5,3-1l0.2-0.1c0.2-0.1,0.3-0.2,0.5-0.3l0.7-0.4c0.2-0.1,0.3-0.2,0.4-0.3l0.2-0.2c0.2-0.1,0.4-0.3,0.5-0.5l0.1-0.1c0.3-0.3,0.7-0.7,0.9-1l0.6-0.9l0.4-0.6c1-1.9,1.4-4.1,1.1-6.2C22,7.8,21.7,6.7,21.2,5.8z"/>%0A    </defs>%0A    <g fill="none" fill-rule="evenodd" transform="translate(0 2)">%0A        <mask id="rotate-b" fill="%23fff">%0A            <use xlink:href="%23rotate"/>%0A        </mask>%0A        <use fill="%235B5B5B" fill-rule="nonzero" xlink:href="%23rotate"/>%0A        <g fill="%235B5B5B" mask="url(%23rotate-b)">%0A            <rect width="30" height="30"/>%0A        </g>%0A    </g>%0A</svg>%0A')}.leaflet-pm-toolbar .leaflet-pm-icon-text{background-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">%0A  <title>Text</title>%0A  <g id="Ebene_2" data-name="Ebene 2">%0A    <polyline points="19.64 7.27 19.64 4 12 4 12 20 15.91 20 8.09 20 12 20 12 4 4.36 4 4.36 7.27" fill="none" stroke="%235b5b5b" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5px"/>%0A  </g>%0A</svg>')}.leaflet-buttons-control-button:hover,.leaflet-buttons-control-button:focus{cursor:pointer;background-color:#f4f4f4}.active>.leaflet-buttons-control-button{box-shadow:inset 0 -1px 5px 2px #514d4d4f}.leaflet-buttons-control-text-hide{display:none}.button-container{position:relative}.button-container .leaflet-pm-actions-container{z-index:2;position:absolute;top:0;left:100%;display:none;white-space:nowrap;direction:ltr}.leaflet-right .leaflet-pm-toolbar .button-container .leaflet-pm-actions-container{right:100%;left:auto}.button-container.active .leaflet-pm-actions-container{display:block}.button-container .leaflet-pm-actions-container:not(.pos-right) a.leaflet-pm-action:last-child{border-radius:0 3px 3px 0;border-right:0}.button-container .leaflet-pm-actions-container.pos-right a.leaflet-pm-action:first-child{border-radius:3px 0 0 3px}.button-container .leaflet-pm-actions-container.pos-right a.leaflet-pm-action:last-child{border-right:0}.button-container .leaflet-pm-actions-container .leaflet-pm-action{padding:0 10px;background-color:#666;color:#fff;display:inline-block;width:auto;border-right:1px solid #eee;-webkit-user-select:none;user-select:none;border-bottom:none;height:29px;line-height:29px;vertical-align:middle}.leaflet-pm-toolbar .button-container:first-child.pos-right.active a.leaflet-buttons-control-button{border-top-left-radius:0}.leaflet-pm-toolbar .button-container:first-child.active:not(.pos-right) a.leaflet-buttons-control-button{border-top-right-radius:0}.button-container .leaflet-pm-actions-container .leaflet-pm-action:hover,.button-container .leaflet-pm-actions-container .leaflet-pm-action:focus{cursor:pointer;background-color:#777}.button-container .leaflet-pm-actions-container .leaflet-pm-action.active-action{background-color:#8e8e8e}.leaflet-pm-toolbar.activeChild{z-index:801}.leaflet-buttons-control-button.pm-disabled{background-color:#f4f4f4}.leaflet-buttons-control-button.pm-disabled>.control-icon{filter:opacity(.6)}.button-container .leaflet-pm-actions-container .pm-action-button-mode.control-icon{filter:brightness(0) invert(1);width:18px}.watch-zone-manager{padding:12px}.watch-zone-login-prompt{text-align:center;padding:24px 16px;background:var(--bg-tertiary, #1a1a1a);border-radius:8px}.watch-zone-login-icon{width:48px;height:48px;margin:0 auto 12px;color:var(--text-secondary, #888)}.watch-zone-login-icon svg{width:100%;height:100%}.watch-zone-login-prompt h3{margin:0 0 8px;font-size:16px;color:var(--text-primary, #fff)}.watch-zone-login-prompt p{margin:0 0 16px;font-size:13px;color:var(--text-secondary, #888);line-height:1.5}.watch-zone-login-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;background:var(--accent-color, #3b82f6);color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.watch-zone-login-btn:hover{background:var(--accent-hover, #2563eb)}.watch-zone-loading{display:flex;align-items:center;justify-content:center;gap:8px;padding:24px;color:var(--text-secondary, #888);font-size:13px}.watch-zone-error{padding:16px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;text-align:center}.watch-zone-error p{margin:0 0 12px;color:#ef4444;font-size:13px}.watch-zone-error button{padding:8px 16px;background:transparent;border:1px solid #ef4444;border-radius:4px;color:#ef4444;font-size:13px;cursor:pointer}.watch-zone-error button:hover{background:#ef44441a}.watch-zone-empty{text-align:center;padding:24px 16px}.watch-zone-empty-icon{width:48px;height:48px;margin:0 auto 12px;color:var(--text-secondary, #888)}.watch-zone-empty-icon svg{width:100%;height:100%}.watch-zone-empty h3{margin:0 0 8px;font-size:16px;color:var(--text-primary, #fff)}.watch-zone-empty p{margin:0 0 16px;font-size:13px;color:var(--text-secondary, #888);line-height:1.5}.watch-zone-signin-hint{margin:12px 0 0!important;font-size:11px!important;color:var(--text-muted, #666)!important;font-style:italic}.watch-zone-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.watch-zone-header h3{margin:0;font-size:14px;font-weight:600;color:var(--text-primary, #fff)}.watch-zone-count{font-size:12px;color:var(--text-secondary, #888);background:var(--bg-tertiary, #1a1a1a);padding:2px 8px;border-radius:10px}.watch-zone-list{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.watch-zone-item{background:var(--bg-tertiary, #1a1a1a);border:1px solid var(--border-color, #333);border-radius:8px;padding:12px;cursor:pointer;transition:border-color .2s,background .2s}.watch-zone-item:hover{border-color:var(--border-hover, #444);background:var(--bg-hover, #222)}.watch-zone-item.disabled{opacity:.6}.watch-zone-item-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.watch-zone-item-name{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:var(--text-primary, #fff)}.watch-zone-status-dot{width:8px;height:8px;border-radius:50%;background:var(--text-secondary, #888)}.watch-zone-status-dot.active{background:#22c55e;box-shadow:0 0 6px #22c55e80}.watch-zone-toggle-btn{padding:4px 10px;font-size:11px;font-weight:600;border:none;border-radius:4px;cursor:pointer;transition:background .2s}.watch-zone-toggle-btn.on{background:#22c55e33;color:#22c55e}.watch-zone-toggle-btn.on:hover{background:#22c55e4d}.watch-zone-toggle-btn.off{background:var(--bg-secondary, #2a2a2a);color:var(--text-secondary, #888)}.watch-zone-toggle-btn.off:hover{background:var(--bg-hover, #333)}.watch-zone-toggle-btn:disabled{opacity:.5;cursor:not-allowed}.watch-zone-item-details{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:8px}.watch-zone-detail{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-secondary, #888)}.watch-zone-detail svg{flex-shrink:0}.watch-zone-item-actions{display:flex;gap:8px;justify-content:flex-end;padding-top:8px;border-top:1px solid var(--border-color, #333)}.watch-zone-action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:1px solid var(--border-color, #333);border-radius:4px;color:var(--text-secondary, #888);cursor:pointer;transition:all .2s}.watch-zone-action-btn:hover{background:var(--bg-hover, #333);color:var(--text-primary, #fff);border-color:var(--border-hover, #444)}.watch-zone-action-btn.danger:hover{background:#ef44441a;color:#ef4444;border-color:#ef44444d}.watch-zone-action-btn:disabled{opacity:.5;cursor:not-allowed}.watch-zone-create-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;background:transparent;border:1px dashed var(--border-color, #333);border-radius:8px;color:var(--text-secondary, #888);font-size:13px;cursor:pointer;transition:all .2s}.watch-zone-create-btn:hover{background:var(--bg-tertiary, #1a1a1a);border-color:var(--accent-color, #3b82f6);color:var(--accent-color, #3b82f6)}.watch-zone-create-btn.primary{background:var(--accent-color, #3b82f6);border:none;color:#fff;font-weight:500}.watch-zone-create-btn.primary:hover{background:var(--accent-hover, #2563eb)}.watch-zone-create-btn svg{width:16px;height:16px}.watch-zone-limit-message{text-align:center;padding:12px;font-size:12px;color:var(--text-secondary, #888);background:var(--bg-tertiary, #1a1a1a);border-radius:6px}.loading-spinner.small{width:14px;height:14px}.watch-zone-editor-inline{background:var(--bg-tertiary, #1a1a1a);border-radius:8px;overflow:hidden}.watch-zone-editor-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--bg-secondary, #151518);border-bottom:1px solid var(--border-color, #333)}.watch-zone-editor-header h3{margin:0;font-size:14px;font-weight:600;color:var(--text-primary, #fff)}.watch-zone-editor-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:4px;color:var(--text-secondary, #888);cursor:pointer;transition:all .2s}.watch-zone-editor-close:hover{background:var(--bg-hover, #333);color:var(--text-primary, #fff)}.watch-zone-editor-hint{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#3b82f61a;border-bottom:1px solid rgba(59,130,246,.2);color:var(--accent-color, #3b82f6);font-size:12px}.watch-zone-editor-hint svg{flex-shrink:0}.watch-zone-editor-form{padding:14px}.watch-zone-editor-error{padding:10px 12px;margin-bottom:12px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:6px;color:#ef4444;font-size:12px}.wz-form-group{margin-bottom:14px}.wz-form-group label{display:block;margin-bottom:6px;font-size:12px;font-weight:500;color:var(--text-primary, #fff)}.wz-form-group input[type=text],.wz-form-group select{width:100%;padding:8px 10px;background:var(--bg-secondary, #151518);border:1px solid var(--border-color, #333);border-radius:6px;color:var(--text-primary, #fff);font-size:13px;transition:border-color .2s;box-sizing:border-box}.wz-form-group input[type=text]:focus,.wz-form-group select:focus{outline:none;border-color:var(--accent-color, #3b82f6)}.wz-form-group input[type=text]::placeholder{color:var(--text-secondary, #888)}.wz-location-display{padding:8px 10px;background:var(--bg-secondary, #151518);border:1px solid var(--border-color, #333);border-radius:6px;font-family:monospace;font-size:12px;color:var(--text-primary, #fff)}.wz-radius-slider{width:100%;height:4px;background:var(--bg-secondary, #151518);border-radius:2px;outline:none;-webkit-appearance:none;margin:6px 0}.wz-radius-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;background:var(--accent-color, #3b82f6);border-radius:50%;cursor:pointer;transition:transform .2s}.wz-radius-slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.wz-radius-slider::-moz-range-thumb{width:16px;height:16px;background:var(--accent-color, #3b82f6);border:none;border-radius:50%;cursor:pointer}.wz-radius-labels{display:flex;justify-content:space-between;font-size:10px;color:var(--text-secondary, #888)}.wz-incident-types{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.wz-incident-type{display:flex;align-items:center;gap:6px;padding:8px 10px;background:var(--bg-secondary, #151518);border:1px solid var(--border-color, #333);border-radius:6px;color:var(--text-secondary, #888);font-size:12px;cursor:pointer;transition:all .2s}.wz-incident-type:hover{border-color:var(--border-hover, #444);background:var(--bg-hover, #222)}.wz-incident-type.selected{border-color:var(--accent-color, #3b82f6);background:#3b82f61a;color:var(--text-primary, #fff)}.wz-incident-icon{font-size:14px}.wz-checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:var(--text-primary, #fff)}.wz-checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent-color, #3b82f6);cursor:pointer}.wz-checkbox-label input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}.wz-field-hint{display:block;margin-top:4px;font-size:11px;color:var(--text-muted, #666)}.wz-field-hint.warning{color:var(--color-fire-orange, #f97316)}.wz-field-hint.success{color:var(--color-safe-green, #22c55e)}.wz-form-actions{display:flex;gap:10px;justify-content:flex-end;padding-top:14px;border-top:1px solid var(--border-color, #333);margin-top:14px}.wz-btn-secondary{padding:8px 16px;background:transparent;border:1px solid var(--border-color, #333);border-radius:6px;color:var(--text-secondary, #888);font-size:13px;cursor:pointer;transition:all .2s}.wz-btn-secondary:hover{background:var(--bg-hover, #333);color:var(--text-primary, #fff)}.wz-btn-secondary:disabled{opacity:.5;cursor:not-allowed}.wz-btn-primary{padding:8px 16px;background:var(--accent-color, #3b82f6);border:none;border-radius:6px;color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:background .2s}.wz-btn-primary:hover{background:var(--accent-hover, #2563eb)}.wz-btn-primary:disabled{opacity:.5;cursor:not-allowed}.wz-shape-selector{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.wz-shape-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 8px;background:var(--bg-secondary, #151518);border:2px solid var(--border-color, #333);border-radius:8px;color:var(--text-secondary, #888);font-size:12px;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.wz-shape-btn:hover{border-color:var(--border-hover, #444);background:var(--bg-hover, #222);color:var(--text-primary, #fff)}.wz-shape-btn.selected{border-color:var(--accent-color, #3b82f6);background:#3b82f626;color:var(--accent-color, #3b82f6)}.wz-shape-btn svg{flex-shrink:0}.wz-polygon-status{padding:12px;background:var(--bg-secondary, #151518);border:1px solid var(--border-color, #333);border-radius:6px}.wz-polygon-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px;color:var(--text-secondary, #888);text-align:center}.wz-polygon-empty svg{opacity:.5}.wz-polygon-info{display:flex;align-items:center;justify-content:space-between}.wz-polygon-points{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--color-safe-green, #22c55e)}.wz-polygon-points:before{content:"✓";display:flex;align-items:center;justify-content:center;width:18px;height:18px;background:#22c55e33;border-radius:50%;font-size:10px}.wz-polygon-redraw{padding:6px 12px;background:transparent;border:1px solid var(--border-color, #333);border-radius:4px;color:var(--text-secondary, #888);font-size:12px;cursor:pointer;transition:all .2s}.wz-polygon-redraw:hover{background:var(--bg-hover, #333);color:var(--text-primary, #fff);border-color:var(--border-hover, #444)}.watch-zone-action-btn.active{background:#3b82f626;color:var(--accent-color, #3b82f6);border-color:#3b82f64d}.watch-zone-action-btn.active:hover{background:#3b82f640}.wz-quiet-hours-config{margin-top:8px;padding:12px;background:var(--bg-secondary, #151518);border:1px solid var(--border-color, #333);border-radius:6px}.wz-time-range{display:flex;align-items:flex-end;gap:8px;margin-bottom:12px}.wz-time-input{flex:1}.wz-time-input label{display:block;margin-bottom:4px;font-size:11px;color:var(--text-secondary, #888)}.wz-time-input input[type=time]{width:100%;padding:8px 10px;background:var(--bg-tertiary, #1a1a1a);border:1px solid var(--border-color, #333);border-radius:6px;color:var(--text-primary, #fff);font-size:13px;box-sizing:border-box}.wz-time-input input[type=time]:focus{outline:none;border-color:var(--accent-color, #3b82f6)}.wz-time-input input[type=time]::-webkit-calendar-picker-indicator{filter:invert(.7);cursor:pointer}.wz-time-separator{padding-bottom:10px;font-size:12px;color:var(--text-secondary, #888)}.wz-quiet-emergency{font-size:12px!important}.wz-quiet-emergency input[type=checkbox]{width:14px;height:14px}.wz-quiet-indicator{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text-muted, #666)}.wz-quiet-indicator svg{opacity:.7}.wz-quiet-indicator.active{color:var(--color-fire-orange, #f97316)}.wz-quiet-indicator.active svg{opacity:1}.supporter-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:100000;padding:16px;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.supporter-modal{background:var(--bg-secondary, #1e1e1e);border-radius:16px;max-width:420px;width:100%;max-height:90vh;overflow-y:auto;position:relative;animation:slideUp .3s ease;box-shadow:0 20px 60px #00000080}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.supporter-modal-close{position:absolute;top:12px;right:12px;background:transparent;border:none;color:var(--text-muted, #888);font-size:24px;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease}.supporter-modal-close:hover{background:var(--bg-tertiary, #2a2a2a);color:var(--text-primary, #fff)}.supporter-modal-header{padding:32px 24px 16px;text-align:center}.supporter-modal-heart{font-size:48px;display:block;margin-bottom:16px;animation:heartbeat 1.5s infinite}@keyframes heartbeat{0%,to{transform:scale(1)}25%{transform:scale(1.1)}50%{transform:scale(1)}75%{transform:scale(1.05)}}.supporter-modal-header h2{margin:0;font-size:22px;font-weight:700;color:var(--text-primary, #fff);line-height:1.3}.supporter-modal-content{padding:0 24px 24px}.supporter-modal-message{color:var(--text-secondary, #999);font-size:14px;line-height:1.6;text-align:center;margin:0 0 20px}.supporter-modal-price{text-align:center;margin-bottom:24px;padding:16px;background:var(--bg-tertiary, #2a2a2a);border-radius:12px}.supporter-modal-price-amount{font-size:48px;font-weight:700;color:var(--text-primary, #fff)}.supporter-modal-price-period{font-size:18px;color:var(--text-muted, #888);margin-left:4px}.supporter-modal-price-trial{display:block;margin-top:8px;font-size:14px;color:#22c55e;font-weight:500}.supporter-modal-status{background:var(--bg-tertiary, #2a2a2a);border-radius:12px;padding:16px;margin-bottom:20px}.supporter-modal-status-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0}.supporter-modal-status-row:not(:last-child){border-bottom:1px solid var(--border-color, #333)}.supporter-modal-status-label{color:var(--text-muted, #888);font-size:13px}.supporter-modal-status-value{color:var(--text-primary, #fff);font-size:14px;font-weight:500}.supporter-modal-status-value.status-active{color:#22c55e}.supporter-modal-status-value.status-trialing{color:#60a5fa}.supporter-modal-features{margin-bottom:20px}.supporter-modal-features h3{font-size:14px;font-weight:600;color:var(--text-primary, #fff);margin:0 0 12px;text-align:center}.supporter-modal-features ul{list-style:none;margin:0;padding:0}.supporter-modal-features li{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg-tertiary, #2a2a2a);border-radius:8px;margin-bottom:8px}.supporter-modal-features .feature-icon{font-size:20px;width:24px;text-align:center;flex-shrink:0}.supporter-modal-features li>span:nth-child(2){flex:1;color:var(--text-primary, #fff);font-size:14px}.supporter-modal-features .feature-badge{font-size:10px;font-weight:600;text-transform:uppercase;padding:4px 8px;border-radius:4px;background:#fbbf2433;color:#fbbf24;letter-spacing:.5px}.supporter-modal-trust{text-align:center;margin-bottom:20px}.supporter-modal-trust p{color:var(--text-muted, #888);font-size:12px;margin:0}.supporter-modal-button{display:block;width:100%;padding:14px 20px;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;border:none;transition:all .2s ease}.supporter-modal-button:disabled{opacity:.6;cursor:not-allowed}.supporter-modal-button.primary{background:linear-gradient(135deg,#f97316,#ea580c);color:#fff}.supporter-modal-button.primary:hover:not(:disabled){background:linear-gradient(135deg,#fb923c,#f97316);transform:translateY(-1px);box-shadow:0 4px 12px #f973164d}.supporter-modal-button.secondary{background:var(--bg-tertiary, #2a2a2a);color:var(--text-primary, #fff);border:1px solid var(--border-color, #333)}.supporter-modal-button.secondary:hover:not(:disabled){background:var(--bg-secondary, #1e1e1e);border-color:var(--text-muted, #888)}.supporter-modal-error{margin-top:16px;padding:12px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#f87171;font-size:13px;text-align:center}@media(max-width:480px){.supporter-modal{max-width:100%;margin:8px}.supporter-modal-header{padding:24px 20px 12px}.supporter-modal-content{padding:0 20px 20px}.supporter-modal-heart{font-size:40px}.supporter-modal-header h2{font-size:18px}.supporter-modal-price-amount{font-size:40px}}.supporter-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:16px;border:1px solid transparent;background:transparent;color:var(--text-secondary);font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.supporter-badge:hover{background:var(--bg-tertiary)}.supporter-badge:focus{outline:none;box-shadow:0 0 0 2px var(--accent-color)}.supporter-badge-icon{font-size:14px;line-height:1}.supporter-badge-text{font-size:12px}.supporter-badge-cta{border-color:#fbbf244d;color:#fbbf24}.supporter-badge-cta:hover{background:#fbbf241a;border-color:#fbbf2480}.supporter-badge-cta .supporter-badge-icon{animation:pulse-heart 2s infinite}@keyframes pulse-heart{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.supporter-badge-trial{border-color:#3b82f64d;color:#60a5fa;background:#3b82f61a}.supporter-badge-trial:hover{background:#3b82f626;border-color:#3b82f680}.supporter-badge-active{border-color:#22c55e4d;color:#22c55e;background:#22c55e1a}.supporter-badge-active:hover{background:#22c55e26;border-color:#22c55e80}.supporter-badge-ending{border-color:#f59e0b4d;color:#f59e0b;background:#f59e0b1a}.supporter-badge-ending:hover{background:#f59e0b26;border-color:#f59e0b80}.supporter-badge.compact{padding:4px 8px}.supporter-badge.compact .supporter-badge-icon{font-size:16px}.notification-inbox{position:absolute;top:calc(100% + 8px);right:0;width:360px;max-height:480px;background:var(--bg-primary, #0a0a0a);border:1px solid var(--border-color, #333);border-radius:12px;box-shadow:0 10px 40px #00000080;overflow:hidden;z-index:10000;display:flex;flex-direction:column}.notification-inbox-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border-color, #333);background:var(--bg-primary, #0a0a0a)}.notification-inbox-header h3{margin:0;font-size:15px;font-weight:600;color:var(--text-primary, #fff)}.notification-inbox-mark-all{padding:6px 12px;background:transparent;border:none;border-radius:6px;color:var(--accent-color, #3b82f6);font-size:12px;font-weight:500;cursor:pointer;transition:background .2s}.notification-inbox-mark-all:hover{background:#3b82f61a}.notification-inbox-mark-all:focus{outline:none;box-shadow:0 0 0 2px var(--accent-color, #3b82f6)}.notification-inbox-mark-all:focus:not(:focus-visible){box-shadow:none}.notification-inbox-mark-all:focus-visible{outline:none;box-shadow:0 0 0 2px var(--accent-color, #3b82f6)}.notification-inbox-list{flex:1;overflow-y:auto;max-height:380px}.notification-inbox-empty{padding:40px 20px;text-align:center}.notification-inbox-empty-icon{display:block;font-size:32px;margin-bottom:12px;opacity:.5}.notification-inbox-empty p{margin:0 0 8px;font-size:14px;color:var(--text-primary, #fff)}.notification-inbox-empty-hint{font-size:12px;color:var(--text-secondary, #888);line-height:1.5}.notification-inbox-item{display:flex;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border-color, #333);cursor:pointer;transition:background .2s;position:relative}.notification-inbox-item:hover{background:var(--bg-tertiary, #1a1a1a)}.notification-inbox-item:focus{outline:none;background:var(--bg-tertiary, #1a1a1a);box-shadow:inset 0 0 0 2px var(--accent-color, #3b82f6)}.notification-inbox-item:focus:not(:focus-visible){box-shadow:none}.notification-inbox-item:focus-visible{outline:none;background:var(--bg-tertiary, #1a1a1a);box-shadow:inset 0 0 0 2px var(--accent-color, #3b82f6)}.notification-inbox-item.unread{background:#3b82f60d}.notification-inbox-item.unread:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent-color, #3b82f6)}.notification-inbox-item:last-child{border-bottom:none}.notification-inbox-item-icon{flex-shrink:0;font-size:20px;line-height:1}.notification-inbox-item-content{flex:1;min-width:0}.notification-inbox-item-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.notification-inbox-item-severity{padding:2px 6px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;background:var(--bg-tertiary, #1a1a1a);color:var(--text-secondary, #888)}.notification-inbox-item-severity.severity-emergency{background:#ef444433;color:#f87171}.notification-inbox-item-severity.severity-watch{background:#f59e0b33;color:#fbbf24}.notification-inbox-item-severity.severity-advice{background:#3b82f633;color:#60a5fa}.notification-inbox-item-time{font-size:11px;color:var(--text-secondary, #888);margin-left:auto}.notification-inbox-item-title{margin:0 0 4px;font-size:13px;font-weight:500;color:var(--text-primary, #fff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notification-inbox-item-body{margin:0 0 4px;font-size:12px;color:var(--text-secondary, #888);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.notification-inbox-item-zone{margin:0;font-size:11px;color:var(--text-muted, #666)}.notification-inbox-item-dismiss{flex-shrink:0;width:24px;height:24px;padding:0;background:transparent;border:none;border-radius:4px;color:var(--text-secondary, #888);cursor:pointer;opacity:0;transition:all .2s;display:flex;align-items:center;justify-content:center}.notification-inbox-item:hover .notification-inbox-item-dismiss{opacity:1}.notification-inbox-item-dismiss:hover{background:var(--bg-hover, #333);color:var(--text-primary, #fff)}.notification-inbox-item-dismiss:focus{outline:none;opacity:1;box-shadow:0 0 0 2px var(--accent-color, #3b82f6)}.notification-inbox-item-dismiss:focus:not(:focus-visible){box-shadow:none;opacity:0}.notification-inbox-item-dismiss:focus-visible{outline:none;opacity:1;box-shadow:0 0 0 2px var(--accent-color, #3b82f6)}.notification-inbox-item-dismiss svg{width:14px;height:14px}.notification-inbox-loading{display:flex;align-items:center;justify-content:center;gap:8px;padding:16px;font-size:12px;color:var(--text-secondary, #888)}.notification-inbox-load-more{display:block;width:100%;padding:12px;background:transparent;border:none;color:var(--accent-color, #3b82f6);font-size:13px;font-weight:500;cursor:pointer;transition:background .2s}.notification-inbox-load-more:hover{background:#3b82f61a}.notification-inbox-load-more:focus{outline:none;box-shadow:inset 0 0 0 2px var(--accent-color, #3b82f6)}.notification-inbox-load-more:focus:not(:focus-visible){box-shadow:none}.notification-inbox-load-more:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--accent-color, #3b82f6)}.notification-inbox-footer{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-top:1px solid var(--border-color, #333);background:var(--bg-primary, #0a0a0a)}.notification-inbox-count{font-size:11px;color:var(--text-secondary, #888)}.notification-inbox-view-all{display:flex;align-items:center;gap:4px;padding:6px 10px;background:transparent;border:none;color:var(--accent-color, #3b82f6);font-size:12px;font-weight:500;cursor:pointer;border-radius:6px;transition:background .2s}.notification-inbox-view-all:hover{background:#3b82f61a}.notification-inbox-view-all:focus{outline:none;box-shadow:0 0 0 2px var(--accent-color, #3b82f6)}.notification-inbox-view-all:focus:not(:focus-visible){box-shadow:none}.notification-inbox-view-all:focus-visible{outline:none;box-shadow:0 0 0 2px var(--accent-color, #3b82f6)}.notification-inbox-view-all svg{flex-shrink:0}@media(max-width:480px){.notification-inbox{position:fixed;top:60px;right:8px;left:8px;width:auto;max-height:calc(100vh - 80px)}}.notification-badge-container{position:relative}.notification-badge-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:transparent;border:1px solid var(--border-color, #333);border-radius:8px;color:var(--text-secondary, #888);cursor:pointer;transition:all .2s;position:relative}.notification-badge-btn:hover{background:var(--bg-tertiary, #1a1a1a);border-color:var(--border-hover, #444);color:var(--text-primary, #fff)}.notification-badge-btn.active{background:var(--bg-tertiary, #1a1a1a);border-color:var(--accent-color, #3b82f6);color:var(--accent-color, #3b82f6)}.notification-badge-btn:focus{outline:none;box-shadow:0 0 0 2px var(--bg-primary, #0a0a0a),0 0 0 4px var(--accent-color, #3b82f6)}.notification-badge-btn:focus:not(:focus-visible){box-shadow:none}.notification-badge-btn:focus-visible{outline:none;box-shadow:0 0 0 2px var(--bg-primary, #0a0a0a),0 0 0 4px var(--accent-color, #3b82f6)}.notification-badge-icon{width:18px;height:18px}.notification-badge-count{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;background:#ef4444;border-radius:9px;color:#fff;font-size:11px;font-weight:600;line-height:18px;text-align:center;box-shadow:0 2px 4px #0000004d}@keyframes notification-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.notification-badge-count.pulse{animation:notification-pulse .3s ease-in-out}*,*:before,*:after{box-sizing:border-box}:root{--color-fire-red: #ef4444;--color-fire-orange: #f97316;--color-warning-yellow: #facc15;--color-safe-blue: #3b82f6;--color-gray-50: #0a0a0b;--color-gray-100: #111214;--color-gray-200: #1a1b1e;--color-gray-300: #252629;--color-gray-400: #3f4147;--color-gray-500: #6b7280;--color-gray-600: #9ca3af;--color-gray-700: #d1d5db;--color-gray-800: #e5e7eb;--color-gray-900: #f3f4f6;--bg-primary: #0d0d0f;--bg-secondary: #151518;--bg-tertiary: #1c1c21;--bg-elevated: #222228;--bg-hover: #2a2a32;--text-primary: #f0f0f2;--text-secondary: #a0a0a8;--text-muted: #6b6b75;--border-color: #2d2d35;--border-light: #3a3a45;--accent-glow: rgba(249, 115, 22, .15);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--header-height: 56px;--sidebar-width: 450px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1)}body{margin:0;padding:0;font-family:var(--font-sans);font-size:14px;line-height:1.5;color:var(--text-primary);background:var(--bg-primary);-webkit-font-smoothing:antialiased}*{scrollbar-width:thin;scrollbar-color:var(--border-color) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background-color:var(--border-color);border-radius:4px;border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background-color:#4b5563}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app-header{background:var(--bg-secondary);color:var(--text-primary);flex-shrink:0;z-index:1001;display:flex;flex-direction:column;overflow:visible;position:relative;border-bottom:1px solid var(--border-color)}.app-header-top{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--border-color)}@media(min-width:769px){.app-header{flex-direction:row;align-items:center;padding:var(--space-2) var(--space-4);gap:var(--space-3)}.app-header-top{display:contents;border-bottom:none;padding:0}.app-title{order:1;flex-shrink:0}.header-controls{order:2;flex:1;justify-content:center;padding:0;border-top:none}.app-header-meta{order:3;flex-shrink:0}}.app-title{font-size:1.25rem;font-weight:600;margin:0;display:flex;align-items:center;gap:var(--space-2)}.app-title-logo{height:32px;width:auto}.app-header-meta{display:flex;align-items:center;gap:var(--space-3)}.last-updated{font-size:.75rem;color:var(--text-muted)}.refresh-button{width:36px;height:36px;padding:0;background:transparent;border:1px solid var(--border-light);border-radius:8px;color:var(--text-primary);font-size:1.1rem;cursor:pointer;transition:background .15s,border-color .15s}.refresh-button:hover:not(:disabled){background:var(--bg-hover);border-color:var(--text-muted)}.refresh-button:disabled{opacity:.5;cursor:not-allowed}.header-controls{display:flex;align-items:center;gap:8px;padding:var(--space-2) var(--space-4);flex-wrap:wrap;justify-content:center;background:var(--bg-secondary)}.header-control-btn{background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border-color);border-radius:8px;padding:10px 16px;font-size:13px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .15s;white-space:nowrap;box-shadow:0 2px 8px #0000004d}.header-control-btn:hover{background:var(--bg-hover);transform:translateY(-1px);box-shadow:0 4px 12px #0006;border-color:var(--border-light)}.header-control-btn:active{transform:translateY(0)}.header-control-btn.active{background:var(--color-fire-orange);color:#fff;border-color:var(--color-fire-orange)}.header-control-btn.active:hover{background:#ea580c}.header-control-btn-icon{width:18px;height:18px;flex-shrink:0}.header-control-btn-label{flex:1}.header-back-to-2d{background:var(--color-safe-blue);border-color:var(--color-safe-blue);color:#fff}.header-back-to-2d:hover{background:#2563eb;border-color:#2563eb}.header-control-dropdown{position:relative}.header-control-dropdown-arrow{font-size:10px;margin-left:2px;opacity:.7}.header-control-dropdown-menu{position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:6px;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 8px 24px #00000080;min-width:220px;z-index:9999;overflow:hidden}.header-control-dropdown-header{padding:8px 12px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color);font-size:11px;color:var(--text-muted);font-weight:500}.header-control-dropdown-item{display:flex;align-items:center;gap:8px;padding:10px 12px;color:var(--text-primary);text-decoration:none;font-size:13px;border-bottom:1px solid var(--border-color);transition:background-color .15s}.header-control-dropdown-item:hover{background:var(--bg-hover)}.header-control-dropdown-external{margin-left:auto;font-size:10px;color:var(--text-muted)}.header-control-dropdown-footer{padding:8px 12px;background:#f9731626;font-size:10px;color:var(--color-fire-orange);border-top:1px solid rgba(249,115,22,.3)}.layers-menu{min-width:240px}.layers-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:none;border:none;border-bottom:1px solid var(--border-color);cursor:pointer;text-align:left;font-size:13px;color:var(--text-primary);transition:background-color .15s}.layers-menu-item:hover{background:var(--bg-hover)}.layers-menu-item.active{background:#f9731626}.layers-menu-item:last-child{border-bottom:none}.layers-menu-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0}.layers-menu-icon svg{width:18px;height:18px;color:var(--text-secondary)}.layers-menu-icon.hotspot-icon svg{color:#f97316}.layers-menu-icon.power-icon svg{color:#eab308}.layers-menu-icon.smoke-icon svg{color:#9ca3af}.layers-menu-label{flex:1;white-space:nowrap}.layers-menu-toggle{width:36px;height:20px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:10px;position:relative;transition:background-color .2s;flex-shrink:0}.layers-menu-toggle:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background:#fff;border-radius:50%;transition:transform .2s;box-shadow:0 1px 3px #0003}.layers-menu-toggle.on{background:#f97316}.layers-menu-toggle.on:after{transform:translate(16px)}.app-main{display:flex;flex:1;overflow:hidden}.map-wrapper{flex:1;position:relative}.map-3d-loading{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:var(--bg-primary);color:var(--text-secondary);font-size:14px}.map-3d-loading-spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--color-safe-blue);border-radius:50%;animation:spin 1s linear infinite}.map-3d-error-fallback{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:var(--bg-primary);color:var(--text-primary)}.map-3d-error-content{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:400px;padding:24px}.map-3d-error-content svg{color:var(--color-warning);margin-bottom:16px}.map-3d-error-content h3{font-size:20px;font-weight:600;margin:0 0 12px}.map-3d-error-content p{font-size:14px;color:var(--text-secondary);line-height:1.5;margin:0 0 20px}.map-3d-error-btn{background:var(--color-safe-blue);color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background .15s}.map-3d-error-btn:hover{background:var(--color-safe-blue-hover)}.map-search-overlay{position:absolute;top:12px;left:60px;right:auto;z-index:1000;width:320px;max-width:calc(100% - 80px)}.map-search-overlay .location-search{margin-bottom:0!important}.map-search-overlay .form-input{background:var(--bg-elevated);color:var(--text-primary);box-shadow:0 4px 12px #0006;border:1px solid var(--border-color);padding:12px 40px 12px 16px!important;font-size:15px!important;border-radius:8px!important}.map-search-overlay .form-input::placeholder{color:var(--text-muted)}.map-search-overlay .form-input:focus{box-shadow:0 4px 16px #00000080;outline:2px solid var(--color-fire-orange);border-color:var(--color-fire-orange)}.mobile-sheet-handle{display:none}.map-container{width:100%;height:100%}.zone-center-marker{background:transparent;border:none}.user-location-marker{background:transparent!important;border:none!important}.user-location-dot{width:14px;height:14px;background:#4285f4;border:2.5px solid #fff;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 4px #0000004d;z-index:2}.user-location-pulse{width:24px;height:24px;background:#4285f440;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);animation:user-location-pulse 2s ease-out infinite;z-index:1}@keyframes user-location-pulse{0%{transform:translate(-50%,-50%) scale(1);opacity:1}to{transform:translate(-50%,-50%) scale(2.5);opacity:0}}.map-container.editing-zone{cursor:crosshair}.leaflet-container{font-family:var(--font-sans)}.leaflet-bar{border:none!important;box-shadow:0 4px 12px #0006!important}.leaflet-bar a{background-color:var(--bg-elevated)!important;color:var(--text-primary)!important;border-bottom:1px solid var(--border-color)!important}.leaflet-bar a:hover{background-color:var(--bg-hover)!important}.leaflet-bar a:first-child{border-top-left-radius:8px!important;border-top-right-radius:8px!important}.leaflet-bar a:last-child{border-bottom-left-radius:8px!important;border-bottom-right-radius:8px!important;border-bottom:none!important}.leaflet-control-attribution{background:#0d0d0fcc!important;color:var(--text-muted)!important}.leaflet-control-attribution a{color:var(--text-secondary)!important}.leaflet-popup-pane{z-index:700!important}.leaflet-popup{z-index:701!important}.custom-event-marker{background:none;border:none}.map-control-stack{position:absolute;bottom:100px;right:10px;z-index:1000;display:flex;flex-direction:column;align-items:center;gap:8px}.map-control-stack .map-control-btn{width:44px;height:44px;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-primary);box-shadow:0 4px 12px #0006;transition:background-color .2s,transform .2s}.map-control-stack .map-control-btn:hover{background:var(--bg-hover)}.map-control-stack .map-control-btn:active{transform:scale(.95)}.map-control-stack .map-control-btn.expanded{background:var(--color-fire-orange);color:#fff;border-color:var(--color-fire-orange)}.map-control-stack .map-control-btn:disabled{cursor:wait;opacity:.7}.map-control-stack .map-control-btn svg{width:22px;height:22px}.map-control-spinner{width:18px;height:18px;border:2px solid var(--border-color);border-top-color:var(--color-fire-orange);border-radius:50%;animation:spin .8s linear infinite}.map-layer-options{position:absolute;bottom:100%;right:0;margin-bottom:8px;display:flex;flex-direction:column;gap:4px;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:12px;padding:8px;box-shadow:0 8px 24px #00000080;animation:slideUp .2s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.map-layer-option{display:flex;align-items:center;gap:10px;padding:10px 14px;background:transparent;border:none;border-radius:8px;cursor:pointer;color:var(--text-primary);transition:background-color .15s;min-width:140px}.map-layer-option:hover{background:var(--bg-hover)}.map-layer-option.active{background:#f9731633;color:var(--color-fire-orange)}.map-layer-option svg{width:22px;height:22px;flex-shrink:0}.map-layer-label{font-size:14px;font-weight:500;white-space:nowrap}@media(max-width:768px){.map-control-stack{bottom:calc(80px + env(safe-area-inset-bottom,0px))}}.map-controls{position:absolute;top:12px;right:12px;z-index:1000;display:flex;flex-direction:column;gap:6px}.map-control-btn{background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border-color);border-radius:6px;padding:8px 12px;font-size:13px;font-weight:600;cursor:pointer;box-shadow:0 2px 4px #0000001a;display:flex;align-items:center;gap:6px;transition:all .2s;white-space:nowrap}.map-control-btn:hover{box-shadow:0 4px 6px #00000026}.map-control-btn.active{color:#fff}.map-control-btn.active-green{background:#10b981}.map-control-btn.active-blue{background:#2563eb}.map-control-btn.active-purple{background:#7c3aed}.map-control-btn.active-red{background:#dc2626}.map-control-btn-icon{font-size:14px;flex-shrink:0}.map-control-btn-label{flex:1}.map-control-btn-small{padding:8px 10px;flex:0}.map-control-dropdown{position:relative}.map-control-dropdown-arrow{font-size:10px;margin-left:auto;opacity:.7}.map-control-dropdown-menu{position:absolute;top:100%;right:0;margin-top:4px;background:#fff;border:1px solid var(--color-gray-200);border-radius:6px;box-shadow:0 4px 12px #00000026;min-width:220px;z-index:1001;overflow:hidden}.map-control-dropdown-header{padding:8px 12px;background:var(--color-gray-50);border-bottom:1px solid var(--color-gray-200);font-size:11px;color:var(--color-gray-500);font-weight:500}.map-control-dropdown-item{display:flex;align-items:center;gap:8px;padding:10px 12px;color:var(--color-gray-800);text-decoration:none;font-size:13px;border-bottom:1px solid var(--color-gray-100);transition:background-color .15s}.map-control-dropdown-item:hover{background:var(--color-gray-100)}.map-control-dropdown-external{margin-left:auto;font-size:10px;color:var(--color-gray-400)}.map-control-dropdown-footer{padding:8px 12px;background:#fbbf2426;font-size:10px;color:#fbbf24;border-top:1px solid rgba(251,191,36,.3)}.map-controls-row{display:flex;gap:4px}.map-controls-row .map-control-btn{flex:1}.map-controls-row .map-control-btn-small{flex:0}@media(max-width:768px){.map-controls{top:8px;right:8px;gap:4px}.map-control-btn{padding:10px;min-width:44px;min-height:44px;justify-content:center;border-radius:8px}.map-control-btn-label{display:none}.map-control-btn-icon{font-size:18px}.map-control-dropdown-arrow{display:none}.map-control-dropdown-menu{min-width:200px;right:0}.map-control-dropdown-item{padding:12px;min-height:44px}.map-controls-row{display:flex;flex-direction:row;gap:4px}.map-controls-row .map-control-btn{flex:0;min-width:44px}.map-control-secondary{display:none}}@media(max-width:380px){.map-controls{top:4px;right:4px}.map-control-btn{padding:8px;min-width:40px;min-height:40px}.map-control-btn-icon{font-size:16px}}.leaflet-popup-content{margin:0!important;padding:0!important;width:auto!important}.leaflet-popup-content-wrapper{padding:0!important;border-radius:8px!important;overflow:hidden;background:var(--bg-elevated)!important;color:var(--text-primary)!important;box-shadow:0 8px 24px #00000080!important}.leaflet-popup-tip{background:var(--bg-elevated)!important}.leaflet-popup .leaflet-popup-close-button,.leaflet-popup-content-wrapper+.leaflet-popup-close-button,a.leaflet-popup-close-button{color:#fff!important;font-size:18px!important;font-weight:700!important;width:26px!important;height:26px!important;padding:0!important;top:8px!important;right:8px!important;background:#0009!important;border-radius:4px!important;display:flex!important;align-items:center!important;justify-content:center!important;line-height:1!important;transition:background .2s!important;z-index:100!important;text-decoration:none!important;border:1px solid rgba(255,255,255,.3)!important}.leaflet-popup .leaflet-popup-close-button:hover,.leaflet-popup-content-wrapper+.leaflet-popup-close-button:hover,a.leaflet-popup-close-button:hover{color:#fff!important;background:#000c!important;border-color:#ffffff80!important}.event-popup{min-width:240px;max-width:300px;box-sizing:border-box}.event-popup>div{box-sizing:border-box}@media(max-width:768px){.leaflet-popup-content-wrapper{max-height:calc(100vh - 200px)!important;overflow-y:auto!important;overflow-x:hidden!important}.leaflet-popup-content{width:calc(100vw - 80px)!important;min-width:280px!important;max-width:400px!important}.event-popup{width:100%!important;min-width:unset!important;max-width:unset!important;max-height:calc(100vh - 220px);overflow-y:auto;box-sizing:border-box}.event-popup>div{width:100%!important;box-sizing:border-box!important}}@media(max-width:480px){.leaflet-popup-content-wrapper{max-height:calc(100vh - 140px)!important}.leaflet-popup-content{width:calc(100vw - 40px)!important;min-width:unset!important;max-width:unset!important}.event-popup{width:100%!important;min-width:unset!important;max-width:unset!important;max-height:calc(100vh - 160px)}.event-popup>div{width:100%!important}}.photo-popup .leaflet-popup-content{width:300px!important;min-width:280px!important;padding:12px!important}.photo-popup .leaflet-popup-content-wrapper{padding:0!important}.photo-popup-content{width:100%}.hotspot-popup-wrapper .leaflet-popup-content{padding:0!important;margin:0!important;width:auto!important}.hotspot-popup-wrapper .leaflet-popup-content-wrapper{padding:0!important;overflow:hidden;border-radius:8px!important}.hotspot-popup{min-width:240px;max-width:300px}.event-popup-header{display:flex;align-items:center;gap:var(--space-2);font-size:.75rem;color:var(--text-muted);margin-bottom:var(--space-1)}.event-popup-title{font-size:1rem;font-weight:600;margin:0 0 var(--space-2) 0;color:var(--text-primary)}.event-popup-description{font-size:.875rem;color:var(--text-secondary);margin:0 0 var(--space-2) 0}.event-popup-meta{display:flex;gap:var(--space-3);font-size:.75rem;color:var(--text-muted)}.event-popup-details{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--border-color);display:flex;flex-direction:column;gap:var(--space-1);font-size:.75rem;color:var(--text-primary)}.sidebar-wrapper{flex-shrink:0;display:flex;flex-direction:column;border-left:1px solid var(--border-color);overflow:hidden;position:relative}.sidebar{flex:1;background:var(--bg-secondary);display:flex;flex-direction:column;overflow:hidden}.sidebar-scroll-content{flex:1;overflow-y:auto;overflow-x:hidden}.sidebar-section{border-bottom:1px solid var(--border-color)}.sidebar-section.events-section{border-bottom:none}.sidebar-section-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);font-weight:600;font-size:.875rem;color:var(--text-primary);background:var(--bg-tertiary);border:none;width:100%;cursor:pointer;text-align:left}.sidebar-section-header:hover{background:var(--bg-hover)}.sidebar-toggle{font-size:1.25rem;line-height:1}.sidebar-section-content{padding:var(--space-4)}.sidebar-footer{padding:var(--space-3) var(--space-4);border-top:1px solid var(--border-color);display:flex;justify-content:center;flex-shrink:0}.events-list-container{padding:0}.form-group{margin-bottom:var(--space-4)}.form-group:last-child{margin-bottom:0}.form-group label{display:block;font-size:.75rem;font-weight:500;color:var(--text-secondary);margin-bottom:var(--space-1)}.form-select{width:100%;padding:var(--space-2) var(--space-3);font-size:.875rem;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-tertiary);color:var(--text-primary);cursor:pointer}.form-select:focus{outline:none;border-color:var(--color-fire-orange);box-shadow:0 0 0 2px #f9731633}.form-range{width:100%;height:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg-tertiary);border-radius:3px;cursor:pointer}.form-range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;background:var(--color-fire-orange);border-radius:50%;cursor:pointer}.form-range::-moz-range-thumb{width:18px;height:18px;background:var(--color-fire-orange);border:none;border-radius:50%;cursor:pointer}.watch-zone-panel{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;padding:var(--space-3);margin-top:var(--space-2)}.watch-zone-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2)}.watch-zone-header label{margin-bottom:0}.watch-zone-toggle{padding:var(--space-1) var(--space-2);font-size:.7rem;font-weight:600;border:none;border-radius:4px;cursor:pointer;background:var(--bg-elevated);color:var(--text-secondary);transition:all .15s ease}.watch-zone-toggle.active{background:var(--color-fire-orange);color:#fff}.watch-zone-toggle:hover{opacity:.9}.watch-zone-status{margin-top:var(--space-3);padding-top:var(--space-2);border-top:1px solid var(--border-color)}.watch-zone-count{display:flex;align-items:center;gap:var(--space-2);font-size:.8rem;color:var(--text-secondary)}.watch-zone-indicator{width:8px;height:8px;border-radius:50%;flex-shrink:0}.watch-zone-indicator.clear{background:#22c55e}.watch-zone-indicator.has-fires{background:var(--color-fire-orange);animation:pulse-fire 2s ease-in-out infinite}@keyframes pulse-fire{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.2)}}.watch-zone-notifications{margin-top:var(--space-2);font-size:.75rem}.notification-status{display:inline-flex;align-items:center;gap:var(--space-1)}.notification-status.granted{color:#22c55e}.notification-status.denied{color:var(--color-fire-red)}.notification-status.unsupported{color:var(--color-gray-500)}.notification-request-btn{padding:var(--space-1) var(--space-2);font-size:.75rem;background:var(--color-safe-blue);color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background .15s ease}.notification-request-btn:hover{background:#1d4ed8}.sidebar-status{padding:var(--space-3) var(--space-4);font-size:.875rem;display:flex;align-items:center;gap:var(--space-2)}.sidebar-status.loading{color:var(--text-secondary);background:var(--bg-tertiary)}.sidebar-status.error{color:var(--color-fire-red);background:#ef444426}.loading-spinner{width:16px;height:16px;border:2px solid var(--border-color);border-top-color:var(--color-fire-orange);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.event-list{padding:0}.event-list-empty{padding:var(--space-6) var(--space-4);text-align:center;color:var(--text-muted)}.event-list-empty p{margin:0 0 var(--space-2) 0}.event-list-empty-hint{font-size:.75rem}.event-group{margin-bottom:var(--space-2)}.event-group-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--color-gray-50);border-left:3px solid;font-size:.75rem;font-weight:500;color:var(--color-gray-700)}.event-group-count{margin-left:auto;background:var(--color-gray-200);padding:0 var(--space-2);border-radius:10px;font-size:.7rem}.event-group-list{list-style:none;margin:0;padding:0}.event-item{border-bottom:1px solid var(--border-color)}.event-item:last-child{border-bottom:none}.event-item-button{display:flex;align-items:center;width:100%;padding:var(--space-3) var(--space-4);background:none;border:none;cursor:pointer;text-align:left;transition:background .1s}.event-item-button:hover{background:var(--bg-hover)}.event-item-content{flex:1;min-width:0;max-width:100%}.event-item-content *{white-space:normal!important}.event-item-title{display:inline;font-size:.875rem;font-weight:500;color:var(--text-primary);word-break:break-word}.event-item-meta{display:block;font-size:.75rem;color:var(--text-muted);margin-top:var(--space-1)}.event-item-arrow{color:var(--text-muted);font-size:.875rem;margin-left:var(--space-2)}.summary-ribbon{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-3) var(--space-4);font-size:.875rem;line-height:1.4;border-bottom:1px solid var(--border-color)}.summary-ribbon-clear{background:#22c55e26;color:#4ade80}.summary-ribbon-active{background:#f9731626;color:#fb923c}.summary-ribbon-emergency{background:#ef444426;color:#f87171;font-weight:500}.summary-icon{flex-shrink:0;font-size:1rem}.summary-text{flex:1}.view-tabs{display:flex;border-bottom:1px solid var(--border-color)}.view-tab{flex:1;padding:var(--space-3) var(--space-4);background:var(--bg-tertiary);border:none;border-bottom:2px solid transparent;font-size:.875rem;font-weight:500;color:var(--text-muted);cursor:pointer;transition:color .15s,border-color .15s}.view-tab:hover{color:var(--text-primary)}.view-tab-active{background:var(--bg-secondary);color:var(--color-fire-orange);border-bottom-color:var(--color-fire-orange)}.timeline{position:relative;padding:var(--space-4)}.timeline-line{position:absolute;left:24px;top:var(--space-4);bottom:var(--space-4);width:2px;background:var(--border-color)}.timeline-empty{padding:var(--space-6) var(--space-4);text-align:center;color:var(--text-muted)}.timeline-empty p{margin:0 0 var(--space-2) 0}.timeline-empty-hint{font-size:.75rem}.timeline-bucket{position:relative;margin-bottom:var(--space-4)}.timeline-bucket:last-child{margin-bottom:0}.timeline-bucket-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) 0;padding-left:40px;font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.timeline-bucket-header:before{content:"";position:absolute;left:18px;width:12px;height:12px;background:var(--bg-elevated);border:2px solid var(--border-color);border-radius:50%}.timeline-bucket-count{font-weight:400;text-transform:none;letter-spacing:0;color:var(--text-muted)}.timeline-bucket-list{list-style:none;margin:0;padding:0 0 0 40px}.timeline-bucket-empty{padding:var(--space-2) 0;padding-left:40px;font-size:.75rem;color:var(--text-muted);font-style:italic}.timeline-event{margin-bottom:var(--space-2)}.timeline-event:last-child{margin-bottom:0}.timeline-event-button{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-3);background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:6px;cursor:pointer;text-align:left;transition:border-color .15s,box-shadow .15s}.timeline-event-button:hover{border-color:#3b82f6;box-shadow:0 2px 8px #3b82f626}.timeline-event-icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:14px;flex-shrink:0}.timeline-event-icon-fire{background:transparent!important;border-radius:0}.timeline-event-content{flex:1;min-width:0}.timeline-event-title{display:block;font-size:.875rem;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timeline-event-meta{display:block;font-size:.75rem;color:var(--text-secondary);margin-top:2px}@media(max-width:768px){.app{height:100dvh;height:100vh;min-height:-webkit-fill-available}.app-main{flex-direction:column;overflow:hidden}.map-wrapper{flex:1;min-height:50vh;min-height:50dvh;position:relative}.map-search-overlay{left:50px;width:auto;right:12px;max-width:none}.map-search-overlay .form-input{padding:10px 36px 10px 12px!important;font-size:14px!important}.app-main .map-wrapper{flex:1;height:100%}.sidebar-wrapper{position:fixed!important;bottom:0;left:0;right:0;width:100%!important;height:calc(85vh - env(safe-area-inset-top,0px));max-height:none!important;z-index:1100;background:var(--bg-secondary)!important;border-left:none;border-top:none;border-radius:16px 16px 0 0;box-shadow:0 -4px 20px #0006;overflow:hidden;display:flex!important;flex-direction:column;transform:translateY(calc(100% - 56px));transition:transform .35s cubic-bezier(.32,.72,0,1);touch-action:pan-y}.sidebar-wrapper.sheet-expanded{transform:translateY(0)}.sidebar-wrapper:after{content:"";display:block;height:env(safe-area-inset-bottom,0px);flex-shrink:0}.sidebar-wrapper .sidebar{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.mobile-sheet-handle{display:flex;flex-direction:column;align-items:center;padding:10px 16px 8px;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;flex-shrink:0;background:var(--bg-elevated);border-radius:16px 16px 0 0;border-bottom:1px solid var(--border-color);position:relative;z-index:1100}.mobile-sheet-handle:active{cursor:grabbing}.mobile-sheet-pill{width:40px;height:5px;background:#ffffff4d;border-radius:3px;margin-bottom:6px;transition:background .2s}.mobile-sheet-handle:active .mobile-sheet-pill{background:#fff9}.mobile-sheet-label{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--text-muted);white-space:nowrap}.app-main.mobile-map-view .sidebar-wrapper,.app-main.mobile-list-view .sidebar-wrapper{display:flex!important}.fire-detail-panel{top:56px!important}.app-main.mobile-map-view .map-wrapper,.app-main.mobile-list-view .map-wrapper{flex:1;height:100%;visibility:visible!important;position:relative!important;pointer-events:auto!important;touch-action:auto!important;z-index:auto!important}.sidebar-resize-handle{display:none!important}.app-header{height:auto;min-height:48px;padding:var(--space-2) 0}.app-header-content{padding:0 var(--space-3)}.app-title{font-size:1.15rem;gap:var(--space-1)}.app-title-logo{height:36px}.last-updated{display:none}.app-header-top{padding:var(--space-1) var(--space-2)}.header-controls{gap:6px;padding:var(--space-2);justify-content:center}.header-control-btn{padding:10px 12px;min-width:44px;min-height:44px;justify-content:center;border-radius:8px}.header-control-btn-label{display:inline;font-size:.75rem}.header-control-btn-icon{width:20px;height:20px}.header-control-dropdown-menu{position:fixed;top:auto;right:8px;left:auto;transform:none;min-width:200px;max-width:calc(100vw - 16px)}.header-control-dropdown-item{padding:12px;min-height:44px}.safety-banner-content{padding:var(--space-1) var(--space-2);gap:var(--space-2)}.safety-banner-primary{font-size:.7rem}.safety-banner-secondary{display:none}.safety-banner-dismiss{padding:2px 8px;font-size:.75rem}.summary-ribbon{font-size:.8rem;padding:var(--space-2) var(--space-3)}.sidebar-section-header{padding:var(--space-2) var(--space-3);font-size:.8rem}.sidebar-section-content{padding:var(--space-3)}.event-item-button{padding:var(--space-3);min-height:56px}.event-group-header{padding:var(--space-2) var(--space-3);font-size:.7rem}.form-select{font-size:16px;padding:var(--space-3);min-height:44px}.event-popup{max-width:260px;font-size:.85rem}.event-popup-title{font-size:.95rem}}@media(max-width:480px){.app-title{font-size:.85rem}.form-group{margin-bottom:var(--space-2)}.header-controls{gap:4px;padding:var(--space-1)}.header-control-btn{padding:8px 10px;min-width:40px;min-height:40px}.header-control-btn-icon{width:18px;height:18px}}@media(max-width:768px)and (orientation:landscape){.app-main{flex-direction:row}.map-wrapper{flex:1;min-height:auto;height:100%}.sidebar-wrapper{width:280px!important;max-height:none;height:100%;border-top:none;border-left:1px solid var(--color-gray-200)}.safety-banner{display:none}.app-header{min-height:40px}}.safety-banner{background:#dc262626;border-bottom:2px solid var(--color-fire-red);flex-shrink:0}.safety-banner-content{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);max-width:1400px;margin:0 auto}.safety-banner-icon{font-size:1.25rem;flex-shrink:0}.safety-banner-text{flex:1}.safety-banner-primary{margin:0;color:#fca5a5;font-size:.875rem;display:inline}.safety-banner-secondary{margin:0;color:#f87171;font-size:.8rem;line-height:1.4;display:inline;margin-left:var(--space-2)}.safety-banner-dismiss{background:none;border:1px solid var(--color-fire-red);color:#fca5a5;cursor:pointer;padding:4px 10px;font-size:.875rem;border-radius:4px;transition:background-color .15s,color .15s;flex-shrink:0}.safety-banner-dismiss:hover{background:var(--color-fire-red);color:#fff}.disclaimer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:10000;padding:var(--space-4)}.disclaimer-modal{background:var(--bg-secondary);border-radius:12px;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 25px 50px -12px #00000080;border:1px solid var(--border-color)}.disclaimer-header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-5) var(--space-6);background:#dc262626;border-bottom:2px solid #dc2626;border-radius:12px 12px 0 0}.disclaimer-icon{font-size:2rem}.disclaimer-header h2{margin:0;font-size:1.25rem;color:#f87171}.disclaimer-content{padding:var(--space-5) var(--space-6);background:var(--bg-secondary)}.disclaimer-section{margin-bottom:var(--space-5)}.disclaimer-section:last-child{margin-bottom:0}.disclaimer-section h3{font-size:1rem;color:var(--text-primary);margin:0 0 var(--space-2) 0}.disclaimer-section p{font-size:.875rem;color:var(--text-secondary);margin:0 0 var(--space-2) 0;line-height:1.5}.disclaimer-section ul{margin:0;padding-left:var(--space-5);font-size:.875rem;color:var(--text-secondary)}.disclaimer-section li{margin-bottom:var(--space-1)}.disclaimer-emergency{background:#dc26261a;padding:var(--space-4);border-radius:8px;border-left:4px solid #dc2626}.disclaimer-emergency h3{color:#f87171}.disclaimer-emergency p{color:#fca5a5}.disclaimer-footer{padding:var(--space-5) var(--space-6);background:var(--bg-tertiary);border-top:1px solid var(--border-color);border-radius:0 0 12px 12px}.disclaimer-checkbox{display:flex;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-4);cursor:pointer}.disclaimer-checkbox input{margin-top:3px;flex-shrink:0;accent-color:#dc2626}.disclaimer-checkbox span{font-size:.875rem;color:var(--text-secondary);line-height:1.4}.disclaimer-accept-button{width:100%;padding:var(--space-3) var(--space-4);background:#dc2626;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s}.disclaimer-accept-button:hover:not(:disabled){background:#b91c1c}.disclaimer-accept-button:disabled{background:var(--bg-tertiary);color:var(--text-muted);cursor:not-allowed}.official-links{border-bottom:1px solid var(--border-color)}.official-links-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--space-3) var(--space-4);background:#3b82f626;border:none;cursor:pointer;text-align:left}.official-links-header:hover{background:#3b82f640}.official-links-title{display:flex;align-items:center;gap:var(--space-2);font-size:.875rem;font-weight:600;color:#60a5fa}.official-links-icon{font-size:1rem}.official-links-toggle{font-size:1.25rem;color:#60a5fa}.official-links-content{padding:var(--space-4);background:var(--bg-tertiary)}.official-links-intro{font-size:.8rem;color:var(--text-secondary);margin:0 0 var(--space-3) 0}.official-links-list{display:flex;flex-direction:column;gap:var(--space-2)}.official-link{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:8px;text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s}.official-link:hover{border-color:#3b82f6;box-shadow:0 2px 8px #3b82f626}.official-link-emergency{background:#ef444426;border-color:#ef444466}.official-link-emergency:hover{border-color:#ef4444}.official-link-icon{font-size:1.25rem;flex-shrink:0}.official-link-content{flex:1;min-width:0}.official-link-name{display:block;font-size:.875rem;font-weight:600;color:var(--text-primary)}.official-link-description{display:block;font-size:.75rem;color:var(--text-secondary)}.official-link-arrow{color:var(--text-muted);font-size:.875rem}.official-links-footer{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border-color);font-size:.8rem;color:var(--text-secondary)}.official-links-footer p{margin:0}.official-links-footer a{color:#60a5fa;font-weight:600}@media(max-width:768px){.disclaimer-modal{margin:var(--space-2);max-height:calc(100vh - var(--space-4))}.disclaimer-header,.disclaimer-content,.disclaimer-footer{padding:var(--space-4)}.disclaimer-header h2{font-size:1.1rem}}.alert-toast-container{position:fixed;top:120px;right:16px;z-index:2000;width:340px;max-width:calc(100vw - 32px);background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 8px 32px #00000080,0 2px 8px #0000004d;overflow:hidden;animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translate(100px)}to{opacity:1;transform:translate(0)}}.alert-toast-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#dc2626;color:#fff}.alert-toast-count{font-weight:600;font-size:14px}.alert-toast-dismiss-all{background:#fff3;border:none;color:#fff;padding:4px 10px;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;transition:background .15s}.alert-toast-dismiss-all:hover{background:#ffffff4d}.alert-toast-list{max-height:320px;overflow-y:auto}.alert-toast-item{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;border-left:4px solid;border-bottom:1px solid var(--border-color);cursor:pointer;transition:background .15s}.alert-toast-item:hover{background:var(--bg-hover)}.alert-toast-item:last-child{border-bottom:none}.alert-toast-badge{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.alert-toast-content{flex:1;min-width:0}.alert-toast-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:2px}.alert-toast-event-name{font-size:13px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}.alert-toast-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:11px}.alert-toast-distance{color:var(--text-secondary)}.alert-toast-escalation{color:#dc2626;font-weight:500}.alert-toast-severity{font-weight:600}.alert-toast-dismiss{background:none;border:none;color:var(--text-muted);padding:4px;cursor:pointer;border-radius:4px;transition:color .15s,background .15s;flex-shrink:0}.alert-toast-dismiss:hover{color:var(--text-primary);background:var(--bg-hover)}.alert-toast-more{padding:8px 16px;text-align:center;font-size:12px;color:var(--text-secondary);background:var(--bg-tertiary);border-top:1px solid var(--border-color)}.watch-zone-indicator{display:flex;align-items:center;gap:6px;padding:6px 12px;background:#8b5cf61a;border:1px solid rgba(139,92,246,.3);border-radius:20px;font-size:12px;color:#7c3aed}.watch-zone-indicator-dot{width:8px;height:8px;border-radius:50%;background:#7c3aed;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.watch-zone-indicator-count{font-weight:600}@media(max-width:768px){.alert-toast-container{top:auto;bottom:80px;right:8px;left:8px;width:auto;max-width:none}.alert-toast-list{max-height:200px}}.error-boundary{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-gray-900);padding:var(--space-4)}.error-boundary-content{max-width:600px;background:var(--color-gray-800);border-radius:12px;padding:var(--space-6);text-align:center}.error-boundary h1{color:var(--color-fire-red);margin:0 0 var(--space-3);font-size:1.5rem}.error-boundary p{color:var(--color-gray-300);margin:0 0 var(--space-4)}.error-boundary-actions{margin-bottom:var(--space-6)}.error-boundary-btn{padding:var(--space-3) var(--space-6);border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;border:none;transition:background .2s}.error-boundary-btn.primary{background:var(--color-safe-blue);color:#fff}.error-boundary-btn.primary:hover{background:#1d4ed8}.error-boundary-emergency{background:var(--color-gray-900);border-radius:8px;padding:var(--space-4);text-align:left;margin-top:var(--space-4)}.error-boundary-emergency h2{color:var(--color-fire-orange);font-size:1.1rem;margin:0 0 var(--space-2)}.error-boundary-emergency p{font-size:.875rem;margin-bottom:var(--space-3)}.error-boundary-emergency ul{list-style:none;padding:0;margin:0}.error-boundary-emergency li{margin-bottom:var(--space-2)}.error-boundary-emergency a{color:var(--color-safe-blue);text-decoration:none}.error-boundary-emergency a:hover{text-decoration:underline}.error-boundary-emergency .emergency-link{color:var(--color-fire-red);font-weight:600}.error-boundary-details{margin-top:var(--space-4);text-align:left;background:var(--color-gray-900);border-radius:8px;padding:var(--space-3)}.error-boundary-details summary{cursor:pointer;color:var(--color-gray-400);font-size:.875rem}.error-boundary-details pre{margin:var(--space-2) 0 0;padding:var(--space-2);background:#000;border-radius:4px;overflow-x:auto;font-size:.75rem;color:var(--color-fire-red)}.user-menu{position:relative;z-index:10001}.user-menu-button{display:flex;align-items:center;gap:8px;padding:8px 12px;background:transparent;border:1px solid var(--color-gray-600);border-radius:8px;color:#fff;cursor:pointer;transition:background .15s,border-color .15s}.user-menu-button:hover{background:var(--color-gray-700);border-color:var(--color-gray-500)}.user-menu-button.login-button{background:var(--color-safe-blue);border-color:var(--color-safe-blue)}.user-menu-button.login-button:hover{background:#1d4ed8}.user-menu-button.authenticated{padding:6px;border-radius:50%;width:40px;height:40px;justify-content:center}.user-icon{display:flex;align-items:center;justify-content:center}.login-text{font-size:14px;font-weight:500}.user-avatar{width:28px;height:28px;background:var(--color-safe-blue);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;color:#fff}.admin-badge{position:absolute;top:-2px;right:-2px;width:16px;height:16px;background:var(--color-fire-orange);border-radius:50%;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;color:#fff}.user-menu-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:240px;background:var(--bg-secondary, #1c1c1e);border:1px solid var(--border-color, #333);border-radius:12px;box-shadow:0 8px 32px #0006;overflow:hidden;z-index:10002;animation:slideDown .15s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.user-menu-header{padding:16px;background:var(--bg-tertiary, #1a1a1a);border-bottom:1px solid var(--border-color, #333)}.user-name{font-weight:600;color:var(--text-primary, #fff);margin-bottom:2px}.user-email{font-size:13px;color:var(--text-secondary, #888)}.user-role{margin-top:6px;display:inline-block;padding:2px 8px;background:var(--color-fire-orange);color:#fff;font-size:11px;font-weight:600;border-radius:4px}.user-menu-divider{height:1px;background:var(--border-color, #333)}.user-menu-item{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;background:none;border:none;font-size:14px;color:var(--text-secondary, #888);cursor:pointer;text-align:left;transition:background .15s,color .15s}.user-menu-item:hover{background:var(--bg-hover, #2a2a2a);color:var(--text-primary, #fff)}.user-menu-item.admin{color:var(--color-fire-orange)}.user-menu-item.logout{color:var(--color-fire-red)}.user-menu-item svg{flex-shrink:0;color:inherit}.auth-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10000;padding:var(--space-4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.auth-modal{position:relative;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:16px;width:100%;max-width:420px;max-height:90vh;overflow-y:auto;box-shadow:0 24px 48px #00000080;animation:modalIn .2s ease-out}@keyframes modalIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.auth-modal-close{position:absolute;top:16px;right:16px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border:none;border-radius:8px;font-size:20px;color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s}.auth-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.auth-modal-header{padding:24px 24px 0}.auth-modal-header h2{margin:0;font-size:1.5rem;color:var(--text-primary)}.auth-form{padding:24px}.auth-field{margin-bottom:20px}.auth-field label{display:block;margin-bottom:6px;font-size:14px;font-weight:500;color:var(--text-secondary)}.auth-field input{width:100%;padding:12px 16px;font-size:16px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-tertiary);color:var(--text-primary);transition:border-color .15s,box-shadow .15s}.auth-field input:focus{outline:none;border-color:var(--color-fire-orange);box-shadow:0 0 0 3px #f9731633}.auth-field input:disabled{background:var(--bg-primary);cursor:not-allowed;opacity:.6}.auth-field small{display:block;margin-top:6px;font-size:12px;color:var(--text-muted)}.auth-submit{width:100%;padding:14px 24px;background:var(--color-fire-orange);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background .15s}.auth-submit:hover:not(:disabled){background:#ea580c}.auth-submit:disabled{background:var(--bg-tertiary);color:var(--text-muted);cursor:not-allowed}.auth-links{display:flex;flex-direction:column;gap:8px;margin-top:20px;text-align:center}.auth-links button{background:none;border:none;color:var(--color-fire-orange);font-size:14px;cursor:pointer;padding:4px}.auth-links button:hover{text-decoration:underline}.auth-info{margin:0 0 20px;font-size:14px;color:var(--text-secondary);line-height:1.5}.auth-error{margin:16px 24px;padding:12px 16px;background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#fca5a5;font-size:14px}.auth-success{margin:16px 24px;padding:12px 16px;background:#22c55e26;border:1px solid rgba(34,197,94,.3);border-radius:8px;color:#86efac;font-size:14px}.auth-google-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:12px;padding:12px 24px;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:8px;font-size:15px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s}.auth-google-btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-light);box-shadow:0 1px 3px #0003}.auth-google-btn:disabled{opacity:.6;cursor:not-allowed}.auth-google-btn svg{flex-shrink:0}.auth-divider{display:flex;align-items:center;margin:20px 0;color:var(--text-muted);font-size:13px}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border-color)}.auth-divider span{padding:0 16px;text-transform:uppercase;letter-spacing:.05em}@media(max-width:480px){.auth-modal{max-height:100vh;border-radius:0;height:100%}.auth-modal-overlay{padding:0}.login-text{display:none}.user-menu-button.login-button{padding:8px;border-radius:8px}}.profile-modal{max-width:380px}.profile-content{padding:24px}.profile-avatar-section{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:24px}.profile-avatar-large{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,var(--color-safe-blue),#3b82f6);color:#fff;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:600;text-transform:uppercase}.profile-admin-badge{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.profile-details{display:flex;flex-direction:column;gap:16px}.profile-field{display:flex;flex-direction:column;gap:4px}.profile-field label{font-size:12px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.profile-value{font-size:15px;color:var(--text-primary);padding:8px 0;border-bottom:1px solid var(--border-color)}.profile-status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:12px;font-size:13px;font-weight:500}.profile-status-badge.verified{background:#22c55e26;color:#86efac}.profile-status-badge svg{color:#22c55e}.profile-notifications{margin-top:24px;padding:16px 24px;background:#ffffff08;border-top:1px solid rgba(255,255,255,.1)}.profile-notifications h3{margin:0 0 8px;font-size:14px;font-weight:600;color:var(--text-primary)}.profile-notifications-info{margin:0 0 16px;font-size:13px;color:var(--text-muted);line-height:1.5}.profile-notification-status{padding:12px;border-radius:8px;font-size:13px;text-align:center}.profile-notification-status.unsupported{background:#6b728033;color:#9ca3af}.profile-notification-status.denied{background:#ef444426;color:#fca5a5}.profile-notification-toggle{display:flex;flex-direction:column;gap:8px}.profile-push-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px 16px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.profile-push-btn.not-subscribed{background:linear-gradient(135deg,#f97316,#ea580c);color:#fff}.profile-push-btn.not-subscribed:hover{background:linear-gradient(135deg,#fb923c,#f97316)}.profile-push-btn.subscribed{background:#22c55e33;color:#86efac;border:1px solid rgba(34,197,94,.3)}.profile-push-btn.subscribed:hover{background:#ef444433;color:#fca5a5;border-color:#ef44444d}.profile-push-btn:disabled{opacity:.6;cursor:not-allowed}.profile-notification-error{padding:8px 12px;background:#ef444426;border-radius:6px;font-size:12px;color:#fca5a5;text-align:center}.profile-fcm-status{margin-top:24px;padding:16px 24px;background:#ffffff08;border-top:1px solid rgba(255,255,255,.1)}.profile-fcm-status h3{margin:0 0 8px;font-size:14px;font-weight:600;color:var(--text-primary)}.profile-fcm-details{display:flex;flex-direction:column;gap:12px}.profile-fcm-indicator{display:flex;align-items:center;gap:8px;padding:12px;border-radius:8px;font-size:14px;font-weight:500}.profile-fcm-indicator.registered{background:#22c55e26;color:#86efac;border:1px solid rgba(34,197,94,.3)}.profile-fcm-indicator.not-registered{background:#ef444426;color:#fca5a5;border:1px solid rgba(239,68,68,.3)}.profile-fcm-timestamp{font-size:12px;color:var(--text-muted);text-align:center}.profile-fcm-error{padding:8px 12px;background:#ef444426;border-radius:6px;font-size:12px;color:#fca5a5;text-align:center}.profile-fcm-refresh-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:10px 16px;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:#ffffff0d;font-size:13px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s}.profile-fcm-refresh-btn:hover{background:#ffffff1a;border-color:#ffffff4d;color:var(--text-primary)}.profile-fcm-refresh-btn:disabled{opacity:.6;cursor:not-allowed}.profile-footer{padding:16px 24px 24px}.profile-note{margin:0;font-size:13px;color:var(--text-muted);text-align:center}@media(max-width:480px){.profile-modal{max-width:100%;height:100%}}.admin-panel-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10000;padding:var(--space-4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.admin-panel{background:var(--color-gray-100);border-radius:16px;width:100%;max-width:1200px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 24px 48px #0006;animation:modalIn .2s ease-out}.admin-panel-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--color-gray-300)}.admin-panel-header h2{margin:0;font-size:1.25rem;color:#fff}.admin-panel-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--color-gray-300);border:none;border-radius:8px;font-size:20px;color:var(--color-gray-600);cursor:pointer;transition:background .15s,color .15s}.admin-panel-close:hover{background:var(--color-gray-400);color:#fff}.admin-panel-error{display:flex;align-items:center;justify-content:space-between;margin:16px 24px;padding:12px 16px;background:#b91c1c33;border:1px solid var(--color-fire-red);border-radius:8px;color:#fca5a5;font-size:14px}.admin-panel-error button{background:none;border:none;color:inherit;cursor:pointer;font-size:18px;padding:0 0 0 12px}.admin-panel-toolbar{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;border-bottom:1px solid var(--color-gray-300)}.admin-panel-count{color:var(--color-gray-400);font-size:14px}.admin-panel-actions{display:flex;gap:12px}.admin-btn{padding:8px 16px;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,opacity .15s}.admin-btn:disabled{opacity:.5;cursor:not-allowed}.admin-btn-refresh{background:var(--color-gray-300);color:#fff}.admin-btn-refresh:hover:not(:disabled){background:var(--color-gray-400)}.admin-btn-approve-all{background:var(--color-safe-green);color:#fff}.admin-btn-approve-all:hover:not(:disabled){background:#15803d}.admin-panel-content{flex:1;overflow-y:auto;padding:24px}.admin-panel-loading,.admin-panel-empty{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--color-gray-500);font-size:14px}.admin-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.admin-photo-card{background:var(--color-gray-200);border-radius:12px;overflow:hidden;border:1px solid var(--color-gray-300)}.admin-photo-preview{aspect-ratio:16 / 9;background:var(--color-gray-100);overflow:hidden}.admin-photo-preview img,.admin-photo-preview video{width:100%;height:100%;object-fit:cover}.admin-photo-info{padding:12px 16px;border-bottom:1px solid var(--color-gray-300)}.admin-photo-name{font-size:13px;font-weight:500;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}.admin-photo-meta{font-size:12px;color:var(--color-gray-500)}.admin-photo-date{font-size:11px;color:var(--color-gray-600);margin-top:4px}.admin-photo-buttons{display:flex;gap:8px;padding:12px 16px}.admin-photo-buttons .admin-btn{flex:1;padding:8px 12px}.admin-btn-approve{background:var(--color-safe-green);color:#fff}.admin-btn-approve:hover:not(:disabled){background:#15803d}.admin-btn-reject{background:var(--color-fire-orange);color:#fff}.admin-btn-reject:hover:not(:disabled){background:#c2410c}.admin-btn-delete{background:var(--color-fire-red);color:#fff;flex:.5}.admin-btn-delete:hover:not(:disabled){background:#991b1b}.admin-btn-grant{background:#10b981;color:#fff;font-size:11px;padding:4px 8px}.admin-btn-grant:hover:not(:disabled){background:#059669}.admin-btn-revoke{background:#f59e0b;color:#fff;font-size:11px;padding:4px 8px}.admin-btn-revoke:hover:not(:disabled){background:#d97706}.admin-user-actions{white-space:nowrap}@media(max-width:640px){.admin-panel{max-height:100vh;border-radius:0;height:100%}.admin-panel-overlay{padding:0}.admin-photo-grid{grid-template-columns:1fr}}.removal-request-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10001;padding:var(--space-4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.removal-request-modal{background:var(--color-gray-100);border-radius:12px;width:100%;max-width:450px;box-shadow:0 24px 48px #0006}.removal-request-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);border-bottom:1px solid var(--color-gray-300)}.removal-request-header h3{margin:0;font-size:1.125rem;font-weight:600;color:#fff}.removal-request-close{background:none;border:none;color:var(--color-gray-400);font-size:1.5rem;cursor:pointer;padding:0;line-height:1;transition:color .2s ease}.removal-request-close:hover{color:#fff}.removal-request-body{padding:var(--space-4)}.removal-request-photo-info{color:var(--color-gray-300);font-size:.875rem;margin:0 0 var(--space-3)}.removal-request-photo-info strong{color:#fff}.removal-request-label{display:block;color:var(--color-gray-800);font-size:.875rem;font-weight:500;margin-bottom:var(--space-2)}.removal-request-textarea{width:100%;padding:var(--space-3);border:1px solid var(--color-gray-400);border-radius:8px;background:var(--color-gray-200);color:var(--color-gray-800);font-size:.875rem;font-family:inherit;resize:vertical;min-height:100px;transition:border-color .2s ease}.removal-request-textarea:focus{outline:none;border-color:var(--color-primary)}.removal-request-textarea::placeholder{color:var(--color-gray-500)}.removal-request-char-count{text-align:right;font-size:.75rem;color:var(--color-gray-500);margin-top:var(--space-1)}.removal-request-error{background:#ef44441a;color:#ef4444;padding:var(--space-3);border-radius:8px;font-size:.875rem;margin-top:var(--space-3)}.removal-request-footer{display:flex;gap:var(--space-3);padding:var(--space-4);border-top:1px solid var(--color-gray-300)}.removal-request-btn{flex:1;padding:var(--space-3);border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.removal-request-btn.secondary{background:var(--color-gray-300);border:none;color:var(--color-gray-800)}.removal-request-btn.secondary:hover:not(:disabled){background:var(--color-gray-400)}.removal-request-btn.primary{background:var(--color-primary);border:none;color:#fff}.removal-request-btn.primary:hover:not(:disabled){background:var(--color-primary-dark)}.removal-request-btn:disabled{opacity:.5;cursor:not-allowed}.removal-request-success{padding:var(--space-6);text-align:center}.removal-request-success svg{margin-bottom:var(--space-3)}.removal-request-success p{color:var(--color-gray-200);margin:0 0 var(--space-2)}.removal-request-success-note{color:var(--color-gray-400)!important;font-size:.875rem;margin-bottom:var(--space-4)!important}.removal-request-success .removal-request-btn{margin-top:var(--space-3)}.admin-panel-tabs{display:flex;border-bottom:1px solid var(--color-gray-300)}.admin-panel-tab{flex:1;padding:var(--space-3) var(--space-4);background:none;border:none;color:#d1d5db!important;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;border-bottom:2px solid transparent;margin-bottom:-1px}.admin-panel-tab:hover{color:#fff!important;background:var(--color-gray-200)}.admin-panel-tab.active{color:#fff!important;border-bottom-color:var(--color-primary);background:#3b82f61a}.admin-panel-tab .tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;margin-left:var(--space-2);background:var(--color-gray-300);color:#fff;border-radius:10px;font-size:.75rem;font-weight:600}.admin-panel-tab.active .tab-badge{background:var(--color-primary);color:#fff}.removal-request-card{background:var(--color-gray-200);border-radius:12px;overflow:hidden;display:flex;flex-direction:column}.removal-request-card-header{display:flex;gap:var(--space-3);padding:var(--space-3)}.removal-request-card-photo{width:80px;height:80px;border-radius:8px;overflow:hidden;flex-shrink:0;background:var(--color-gray-300)}.removal-request-card-photo img,.removal-request-card-photo video{width:100%;height:100%;object-fit:cover}.removal-request-card-photo-missing{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--color-gray-500);font-size:.75rem}.removal-request-card-info{flex:1;min-width:0}.removal-request-card-filename{font-size:.875rem;font-weight:500;color:var(--color-gray-100);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:var(--space-1)}.removal-request-card-date{font-size:.75rem;color:var(--color-gray-500)}.removal-request-card-reason{padding:0 var(--space-3) var(--space-3)}.removal-request-card-reason-label{font-size:.75rem;color:var(--color-gray-500);margin-bottom:var(--space-1)}.removal-request-card-reason-text{font-size:.875rem;color:var(--color-gray-900);background:var(--color-gray-300);padding:var(--space-2);border-radius:6px;max-height:80px;overflow-y:auto}.removal-request-card-buttons{display:flex;gap:var(--space-2);padding:var(--space-3);border-top:1px solid var(--color-gray-300)}.admin-panel-filters{display:flex;gap:var(--space-3);align-items:center}.admin-filter-select,.admin-filter-input{padding:8px 12px;background:var(--color-gray-300);border:1px solid var(--color-gray-400);border-radius:6px;color:#fff!important;font-size:14px}.admin-filter-select option{background:#374151;color:#fff}.admin-filter-select:focus,.admin-filter-input:focus{outline:none;border-color:var(--color-primary)}.admin-filter-input{width:200px}.admin-filter-input::placeholder{color:#9ca3af!important}.admin-comments-list{display:flex;flex-direction:column;gap:var(--space-3)}.admin-comment-card{background:var(--color-gray-200);border-radius:12px;padding:var(--space-4);border:1px solid var(--color-gray-300)}.admin-comment-card.deleted{opacity:.6;border-color:var(--color-red-800);background:#ef44440d}.admin-comment-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-3)}.admin-comment-user{display:flex;align-items:center;gap:var(--space-3)}.admin-comment-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light));display:flex;align-items:center;justify-content:center;font-weight:600;color:#fff;font-size:14px}.admin-comment-user-info{display:flex;flex-direction:column;gap:2px}.admin-comment-name{font-weight:500;color:var(--color-gray-100)}.admin-comment-email{font-size:12px;color:var(--color-gray-400)}.admin-comment-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.admin-comment-status{padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase}.admin-comment-status.status-active{background:#22c55e33;color:var(--color-green-400)}.admin-comment-status.status-deleted{background:#ef444433;color:var(--color-red-400)}.admin-comment-date{font-size:12px;color:var(--color-gray-400)}.admin-comment-event{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-gray-300);border-radius:6px;margin-bottom:var(--space-3);font-size:12px}.admin-comment-event-label{color:var(--color-gray-400)}.admin-comment-event-id{color:var(--color-gray-200);font-family:monospace;word-break:break-all}.admin-comment-content{color:var(--color-gray-200);line-height:1.5;white-space:pre-wrap;word-break:break-word}.admin-comment-actions{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-gray-300);display:flex;gap:var(--space-2)}.admin-comment-deleted-info{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-gray-300);font-size:12px;color:var(--color-red-400)}.tab-badge-supporter{background:linear-gradient(135deg,#22c55e,#16a34a)!important}.admin-users-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3);padding:var(--space-4);background:var(--color-gray-200);border-bottom:1px solid var(--color-gray-300)}.admin-stat-card{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-3);background:var(--color-gray-300);border-radius:8px;border:1px solid var(--color-gray-400)}.admin-stat-value{font-size:24px;font-weight:700;color:#fff}.admin-stat-label{font-size:12px;color:#d1d5db!important;text-transform:uppercase;letter-spacing:.5px}.admin-stat-supporter .admin-stat-value{color:#22c55e}.admin-stat-trial .admin-stat-value{color:#f59e0b}.admin-stat-free .admin-stat-value{color:#fff}.admin-users-table-wrapper{overflow-x:auto}.admin-users-table{width:100%;border-collapse:collapse;font-size:14px}.admin-users-table th,.admin-users-table td{padding:var(--space-3);text-align:left;border-bottom:1px solid var(--color-gray-300);color:#fff!important}.admin-users-table th{background:var(--color-gray-200);color:#fff!important;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.5px;position:sticky;top:0}.admin-users-table tbody tr:hover{background:var(--color-gray-200)}.admin-users-table tr.tier-supporter{background:#22c55e0d}.admin-users-table tr.tier-trialing{background:#f59e0b0d}.admin-user-email{max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff!important}.admin-user-date{color:#fff!important;white-space:nowrap}.admin-tier-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase}.admin-tier-badge.tier-supporter{background:#22c55e33;color:#22c55e}.admin-tier-badge.tier-trialing{background:#f59e0b33;color:#f59e0b}.admin-tier-badge.tier-free{background:#9ca3af33;color:#fff!important}.admin-status-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:500}.admin-status-badge.status-active{background:#22c55e26;color:#22c55e}.admin-status-badge.status-trialing{background:#f59e0b26;color:#f59e0b}.admin-status-badge.status-canceled,.admin-status-badge.status-past_due{background:#ef444426;color:#ef4444}.admin-status-badge.status-expired,.admin-status-badge.status-none{background:#6b728026;color:var(--color-gray-500)}.admin-cancel-badge,.admin-trial-badge{display:inline-block;margin-left:var(--space-2);padding:1px 6px;border-radius:3px;font-size:10px;font-weight:500}.admin-cancel-badge{background:#ef444426;color:#ef4444}.admin-trial-badge{background:#f59e0b26;color:#f59e0b}.toast-container{position:fixed;top:80px;left:50%;transform:translate(-50%);z-index:10000;display:flex;flex-direction:column;gap:12px;max-width:420px;width:calc(100% - 32px);pointer-events:none}.toast-item{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;background:var(--bg-elevated);border-radius:10px;box-shadow:0 4px 20px #0006,0 2px 8px #0000004d;border-left:4px solid;pointer-events:auto;animation:toast-slide-in .3s ease-out}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.toast-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;margin-top:1px}.toast-content{flex:1;min-width:0}.toast-title{font-size:14px;font-weight:600;margin-bottom:2px}.toast-message{font-size:13px;color:var(--text-secondary);line-height:1.4;word-wrap:break-word}.toast-dismiss{flex-shrink:0;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;margin:-4px -4px -4px 0;border-radius:4px;transition:background .15s,color .15s}.toast-dismiss:hover{background:var(--bg-hover);color:var(--text-primary)}@media(max-width:640px){.toast-container{top:70px;max-width:none;width:calc(100% - 16px)}.toast-item{padding:12px 14px}}.comments-section{background:var(--bg-tertiary);border-radius:8px;padding:16px;border:1px solid var(--border-color)}.comments-header{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:14px;font-weight:600;color:var(--text-primary)}.comments-header svg{flex-shrink:0}.comment-form{margin-bottom:16px}.comment-input{width:100%;padding:10px 12px;border:1px solid var(--border-color);border-radius:8px;font-size:14px;resize:vertical;min-height:80px;font-family:inherit;background:var(--bg-elevated);color:var(--text-primary)}.comment-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.comment-input:disabled{background:var(--bg-tertiary);cursor:not-allowed;color:var(--text-muted)}.comment-form-footer{display:flex;justify-content:space-between;align-items:center;margin-top:8px}.comment-char-count{font-size:12px;color:var(--text-muted)}.comment-submit-btn{padding:8px 16px;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:background .2s}.comment-submit-btn:hover:not(:disabled){background:#2563eb}.comment-submit-btn:disabled{background:#9ca3af;cursor:not-allowed}.comment-login-prompt{padding:12px;background:var(--bg-elevated);border-radius:6px;text-align:center;margin-bottom:16px;border:1px solid var(--border-color)}.comment-login-prompt p{margin:0;font-size:13px;color:var(--text-secondary)}.comment-error{padding:8px 12px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:6px;color:#ef4444;font-size:13px;margin-bottom:12px}.comments-list{display:flex;flex-direction:column;gap:12px}.comments-loading,.comments-empty{text-align:center;padding:16px;color:var(--text-muted);font-size:13px}.comment-item{background:var(--bg-elevated);border-radius:8px;padding:12px;border:1px solid var(--border-color)}.comment-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.comment-avatar{width:32px;height:32px;border-radius:50%;background:#3b82f6;color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;flex-shrink:0}.comment-meta{display:flex;flex-direction:column;gap:2px}.comment-author{font-size:13px;font-weight:600;color:var(--text-primary)}.comment-time{font-size:11px;color:var(--text-muted)}.comment-content{font-size:14px;color:var(--text-secondary);line-height:1.5;white-space:pre-wrap;word-break:break-word}.admin-comment-item{background:var(--color-gray-800);border-radius:8px;padding:16px;border:1px solid var(--color-gray-700)}.admin-comment-item.deleted{opacity:.6}.admin-comment-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.admin-comment-info{flex:1}.admin-comment-author{font-size:14px;font-weight:600;color:var(--color-gray-100);margin-bottom:4px}.admin-comment-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:var(--color-gray-400)}.admin-comment-content{font-size:14px;color:var(--color-gray-200);line-height:1.5;margin-bottom:12px}.admin-comment-event{font-size:12px;color:var(--color-gray-400);background:var(--color-gray-700);padding:4px 8px;border-radius:4px;display:inline-block}.admin-comment-status{padding:2px 8px;border-radius:4px;font-size:11px;font-weight:500;text-transform:uppercase}.admin-comment-status.active{background:#10b98133;color:#10b981}.admin-comment-status.deleted{background:#ef444433;color:#ef4444}.admin-panel,.admin-panel *{--text-color-override: #ffffff}.admin-panel-header h2,.admin-comment-name,.admin-comment-author{color:#fff!important}.admin-comment-email,.admin-comment-date,.admin-comment-meta{color:#9ca3af!important}.admin-comment-content{color:#e5e7eb!important}.admin-comment-event{color:#9ca3af!important}.admin-comment-event-label{color:#6b7280!important}.admin-comment-event-id,.admin-photo-name{color:#fff!important}.admin-photo-meta,.admin-photo-date{color:#9ca3af!important}.admin-panel-count{color:#fff!important}.admin-panel-empty,.admin-panel-loading{color:#9ca3af!important}.removal-request-card-filename{color:#fff!important}.removal-request-card-date,.removal-request-card-reason-label{color:#9ca3af!important}.removal-request-card-reason-text{color:#fff!important}.admin-filter-select,.admin-filter-input{color:#fff!important;background:var(--color-gray-300)!important}.admin-filter-input::placeholder{color:#6b7280!important}.admin-btn{color:#fff!important}.road-closure-popup-wrapper .leaflet-popup-content{padding:0!important;margin:0!important;width:auto!important;min-width:320px!important;max-width:none!important}.road-closure-popup-wrapper .leaflet-popup-content-wrapper{padding:0!important;overflow:visible!important;border-radius:8px!important;max-width:none!important}.road-closure-popup-wrapper.leaflet-popup{max-width:none!important}.road-closure-popup{width:360px;max-width:360px;box-sizing:border-box}.road-hazard-icon{background:transparent!important;border:none!important}.road-hazard-icon svg{filter:drop-shadow(0 1px 2px rgba(0,0,0,.3));transition:transform .15s ease}.road-hazard-icon:hover svg{transform:scale(1.1)}.power-outage-popup .leaflet-popup-content{margin:0;padding:0}.power-outage-popup-content{min-width:280px;max-width:320px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.power-outage-popup-header{display:flex;align-items:center;gap:8px;padding:12px 14px;background:linear-gradient(135deg,#f97316,#ea580c);color:#fff;border-radius:8px 8px 0 0}.power-outage-popup-icon{font-size:1.25rem}.power-outage-popup-title{font-weight:600;font-size:1rem}.power-outage-popup-details{padding:12px 14px;display:flex;flex-direction:column;gap:8px;background:#fff}.power-outage-popup-row{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.power-outage-popup-label{font-size:.85rem;color:var(--text-muted);flex-shrink:0}.power-outage-popup-value{font-size:.85rem;font-weight:500;color:var(--text-primary);text-align:right}.power-outage-popup-footer{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--bg-tertiary);border-radius:0 0 8px 8px;border-top:1px solid var(--border-color)}.power-outage-popup-source{font-size:.75rem;color:var(--text-muted)}.power-outage-popup-link{font-size:.8rem;color:#60a5fa;text-decoration:none;font-weight:500}.power-outage-popup-link:hover{text-decoration:underline}.about-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10000;padding:var(--space-4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.about-modal{position:relative;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:16px;width:100%;max-width:700px;max-height:85vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 24px 48px #00000080;animation:modalIn .2s ease-out}.about-modal-close{position:absolute;top:16px;right:16px;width:32px;height:32px;border:none;background:var(--bg-tertiary);border-radius:50%;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-muted);z-index:1;transition:all .15s ease}.about-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.about-modal-header{padding:24px 24px 16px;border-bottom:1px solid var(--border-color);flex-shrink:0}.about-modal-header h2{margin:0 0 4px;font-size:1.5rem;font-weight:700;color:var(--text-primary)}.about-modal-subtitle{margin:0;font-size:.95rem;color:var(--text-muted)}.about-modal-content{padding:20px 24px 24px;overflow-y:auto;flex:1}.about-section{margin-bottom:24px}.about-section:last-child{margin-bottom:0}.about-section h3{margin:0 0 12px;font-size:1.1rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:8px}.about-section h3:before{content:"";width:4px;height:18px;background:var(--color-fire-orange);border-radius:2px}.about-sources-list{display:flex;flex-direction:column;gap:12px}.about-source-item{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:10px;padding:14px 16px;transition:border-color .15s ease}.about-source-item:hover{border-color:var(--border-light)}.about-source-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:6px}.about-source-header h4{margin:0;font-size:.95rem;font-weight:600;color:var(--text-primary)}.about-source-refresh{font-size:.75rem;font-weight:500;padding:3px 8px;background:#f9731626;color:var(--color-fire-orange);border-radius:4px;white-space:nowrap;flex-shrink:0}.about-source-description{margin:0 0 10px;font-size:.875rem;color:var(--text-secondary);line-height:1.5}.about-source-meta{font-size:.8rem;color:var(--text-muted);display:flex;flex-direction:column;gap:4px}.about-source-meta a{color:var(--color-fire-orange);text-decoration:none}.about-source-meta a:hover{text-decoration:underline}.about-external-link{font-size:.7rem;margin-left:2px}.about-source-notes{font-style:italic;color:var(--text-muted)}.about-disclaimer{background:#f973161a;border:1px solid rgba(249,115,22,.3);border-radius:10px;padding:16px}.about-disclaimer p{margin:0 0 10px;font-size:.9rem;color:#fb923c;line-height:1.5}.about-disclaimer p:last-of-type{margin-bottom:8px}.about-disclaimer ul{margin:0;padding-left:20px}.about-disclaimer li{font-size:.85rem;color:#fb923c;margin-bottom:4px}.about-disclaimer a{color:var(--color-fire-orange);text-decoration:none;font-weight:500}.about-disclaimer a:hover{text-decoration:underline}.about-text{margin:0;font-size:.9rem;color:var(--text-secondary);line-height:1.6}.about-version{margin:12px 0 0;font-size:.8rem;color:var(--text-muted)}.about-legal-links{margin:8px 0 0;font-size:.8rem;color:var(--text-muted)}.about-legal-links a{color:#f97316;text-decoration:none}.about-legal-links a:hover{text-decoration:underline}.about-feedback-buttons{display:flex;gap:12px;margin-top:12px;flex-wrap:wrap}.about-feedback-btn{display:inline-flex;align-items:center;padding:10px 20px;background:linear-gradient(135deg,#f97316,#ea580c);color:#fff;text-decoration:none;border-radius:8px;font-size:.9rem;font-weight:500;transition:transform .15s,box-shadow .15s}.about-feedback-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #f973164d}.about-feedback-btn-secondary{background:linear-gradient(135deg,#6b7280,#4b5563)}.about-feedback-btn-secondary:hover{box-shadow:0 4px 12px #6b72804d}@media(max-width:640px){.about-modal-overlay{padding:var(--space-2)}.about-modal{max-height:90vh;border-radius:12px}.about-modal-header{padding:20px 20px 14px}.about-modal-header h2{font-size:1.25rem}.about-modal-content{padding:16px 20px 20px}.about-source-header{flex-direction:column;gap:6px}.about-source-refresh{align-self:flex-start}}.vic-warning-content{font-size:13px!important;line-height:1.6!important;color:var(--text-primary)!important}.vic-warning-content *{color:var(--text-primary)!important;background-color:transparent!important}.vic-warning-content h1,.vic-warning-content h2,.vic-warning-content h3,.vic-warning-content h4,.vic-warning-content h5,.vic-warning-content h6{color:var(--text-primary)!important;margin:16px 0 8px!important;font-weight:600!important}.vic-warning-content h1{font-size:18px!important}.vic-warning-content h2{font-size:16px!important}.vic-warning-content h3{font-size:15px!important}.vic-warning-content h4{font-size:14px!important}.vic-warning-content p{margin:0 0 12px!important;color:var(--text-primary)!important}.vic-warning-content ul,.vic-warning-content ol{margin:8px 0 12px!important;padding-left:20px!important;color:var(--text-primary)!important}.vic-warning-content li{margin-bottom:4px!important;color:var(--text-primary)!important}.vic-warning-content strong,.vic-warning-content b{font-weight:600!important;color:var(--text-primary)!important}.vic-warning-content span,.vic-warning-content div{color:var(--text-primary)!important}.vic-warning-content a{color:#f97316!important;text-decoration:underline!important}.vic-warning-content a:hover{color:#fb923c!important}.health-warning-content{font-size:13px!important;line-height:1.6!important;color:var(--text-primary)!important}.health-warning-content *{color:var(--text-primary)!important;background-color:transparent!important}.health-warning-content h1,.health-warning-content h2,.health-warning-content h3,.health-warning-content h4,.health-warning-content h5,.health-warning-content h6{color:var(--text-primary)!important;margin:16px 0 8px!important;font-weight:600!important}.health-warning-content h1{font-size:18px!important}.health-warning-content h2{font-size:16px!important}.health-warning-content h3{font-size:15px!important}.health-warning-content h4{font-size:14px!important}.health-warning-content p{margin:0 0 12px!important;color:var(--text-primary)!important}.health-warning-content ul,.health-warning-content ol{margin:8px 0 12px!important;padding-left:20px!important;color:var(--text-primary)!important}.health-warning-content li{margin-bottom:4px!important;color:var(--text-primary)!important}.health-warning-content strong,.health-warning-content b{font-weight:600!important;color:var(--text-primary)!important}.health-warning-content span,.health-warning-content div{color:var(--text-primary)!important}.health-warning-content a{color:#a78bfa!important;text-decoration:underline!important}.health-warning-content a:hover{color:#c4b5fd!important}.leaflet-pm-toolbar{background:var(--bg-secondary, #151518)!important;border:1px solid var(--border-color, #333)!important;border-radius:8px!important;padding:4px!important;box-shadow:0 4px 12px #0006!important}.leaflet-pm-toolbar .button-container{background:transparent!important;border:none!important;margin:2px!important}.leaflet-pm-toolbar .button-container a,.leaflet-pm-toolbar .button-container button{background:var(--bg-tertiary, #1a1a1a)!important;border:1px solid var(--border-color, #333)!important;border-radius:6px!important;color:var(--text-primary, #fff)!important;width:36px!important;height:36px!important;display:flex!important;align-items:center!important;justify-content:center!important;transition:all .2s!important}.leaflet-pm-toolbar .button-container a:hover,.leaflet-pm-toolbar .button-container button:hover,.leaflet-pm-toolbar .button-container.active a,.leaflet-pm-toolbar .button-container.active button{background:var(--accent-color, #3b82f6)!important;border-color:var(--accent-color, #3b82f6)!important}.leaflet-pm-toolbar .button-container a svg,.leaflet-pm-toolbar .button-container button svg{fill:var(--text-primary, #fff)!important;stroke:var(--text-primary, #fff)!important}.leaflet-pm-actions-container{background:var(--bg-secondary, #151518)!important;border:1px solid var(--border-color, #333)!important;border-radius:6px!important;margin-left:8px!important;padding:4px!important}.leaflet-pm-actions-container a{background:var(--bg-tertiary, #1a1a1a)!important;color:var(--text-primary, #fff)!important;border-radius:4px!important;padding:4px 8px!important;margin:2px!important;font-size:12px!important;transition:all .2s!important}.leaflet-pm-actions-container a:hover{background:var(--accent-color, #3b82f6)!important}.leaflet-tooltip.leaflet-pm-tooltip{background:var(--bg-secondary, #151518)!important;border:1px solid var(--border-color, #333)!important;color:var(--text-primary, #fff)!important;border-radius:4px!important;font-size:12px!important;padding:4px 8px!important}.leaflet-tooltip.leaflet-pm-tooltip:before{border-right-color:var(--bg-secondary, #151518)!important}.watch-zone-popup-wrapper .leaflet-popup-content{padding:12px!important;margin:0!important}.watch-zone-popup-wrapper .leaflet-popup-content-wrapper{background:var(--bg-secondary, #1c1c1e)!important;color:var(--text-primary, #fff)!important;border-radius:8px!important;box-shadow:0 4px 16px #00000080!important}.watch-zone-popup-wrapper .leaflet-popup-tip{background:var(--bg-secondary, #1c1c1e)!important}.watch-zone-popup{padding:0}.watch-zone-popup-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.watch-zone-popup-header strong{color:var(--text-primary, #fff)}.watch-zone-popup-status{width:8px;height:8px;border-radius:50%;background:var(--text-secondary, #888)}.watch-zone-popup-status.enabled{background:#22c55e;box-shadow:0 0 6px #22c55e80}.watch-zone-popup-status.disabled{background:#6b7280}.watch-zone-popup-info{font-size:12px;color:var(--text-secondary, #666);margin-bottom:4px}.watch-zone-popup-types{display:flex;gap:4px}.watch-zone-popup-type{font-size:14px}.mobile-zone-instruction-bar{display:none;position:absolute;top:70px;left:50%;transform:translate(-50%);z-index:1000;background:var(--bg-secondary, #1c1c1e);border:1px solid var(--border-color, #333);border-radius:12px;padding:12px 16px;box-shadow:0 4px 20px #0006;max-width:calc(100% - 32px);width:auto;min-width:280px}.mobile-zone-instruction-content{display:flex;align-items:center;gap:10px;margin-bottom:12px;color:var(--text-primary, #fff);font-size:14px;line-height:1.4}.mobile-zone-instruction-content svg{flex-shrink:0;color:var(--accent-color, #3b82f6)}.mobile-zone-instruction-back{width:100%;padding:10px 16px;background:var(--accent-color, #3b82f6);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.mobile-zone-instruction-back:hover{background:var(--accent-hover, #2563eb)}@media(max-width:768px){.mobile-zone-instruction-bar{display:block}}.aqi-badge-wrapper:hover .aqi-tooltip{opacity:1!important;visibility:visible!important}.aqi-badge-wrapper{z-index:100}.aqi-tooltip{transform-origin:bottom center}.aqi-badge-wrapper:hover .aqi-tooltip{animation:aqi-tooltip-pop .2s ease-out}@keyframes aqi-tooltip-pop{0%{opacity:0;transform:translate(-50%) translateY(4px) scale(.95)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}
