.leaflet-cluster-anim .leaflet-marker-icon,.leaflet-cluster-anim .leaflet-marker-shadow{-webkit-transition:-webkit-transform .3s ease-out,opacity .3s ease-in;-moz-transition:-moz-transform .3s ease-out,opacity .3s ease-in;-o-transition:-o-transform .3s ease-out,opacity .3s ease-in;transition:transform .3s ease-out,opacity .3s ease-in}.leaflet-cluster-spider-leg{-webkit-transition:-webkit-stroke-dashoffset .3s ease-out,-webkit-stroke-opacity .3s ease-in;-moz-transition:-moz-stroke-dashoffset .3s ease-out,-moz-stroke-opacity .3s ease-in;-o-transition:-o-stroke-dashoffset .3s ease-out,-o-stroke-opacity .3s ease-in;transition:stroke-dashoffset .3s ease-out,stroke-opacity .3s ease-in}.marker-cluster-small{background-color:#b5e28c99}.marker-cluster-small div{background-color:#6ecc3999}.marker-cluster-medium{background-color:#f1d35799}.marker-cluster-medium div{background-color:#f0c20c99}.marker-cluster-large{background-color:#fd9c7399}.marker-cluster-large div{background-color:#f1801799}.leaflet-oldie .marker-cluster-small{background-color:#b5e28c}.leaflet-oldie .marker-cluster-small div{background-color:#6ecc39}.leaflet-oldie .marker-cluster-medium{background-color:#f1d357}.leaflet-oldie .marker-cluster-medium div{background-color:#f0c20c}.leaflet-oldie .marker-cluster-large{background-color:#fd9c73}.leaflet-oldie .marker-cluster-large div{background-color:#f18017}.marker-cluster{background-clip:padding-box;border-radius:20px}.marker-cluster div{width:30px;height:30px;margin-left:5px;margin-top:5px;text-align:center;border-radius:15px;font:12px Helvetica Neue,Arial,Helvetica,sans-serif}.marker-cluster span{line-height:30px}:root{--danger-color: #e67700;--danger-color-soft: #fff3e0;--accident-color: #c62828;--accident-color-soft: #ffebee;--good-color: #2e7d32;--good-color-soft: #e8f5e9;--change-color: #1565c0;--change-color-soft: #e3f2fd;--subtitle-color: #6b7280;--incident-default-color: #c30b82;--incident-default-color-soft: #fce4ec;--primary-color: #002A9E;--success-color: oklch(64.8% .2 131.684);--error-color: oklch(57.7% .245 27.325);--secondary-color-soft: #f5eff0;--secondary-color: #ece0e2;--accent-color: #e74e41;--answer-color: #fafafa;--answer-color-dark: #cccccc;--answer-color-darker: #a09f9f;--link-color-muted: #666666;--test-color: #e7eb00}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%;font-family:Hanken Grotesk,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-weight:300}h1,h2,h3,h4,h5,h6{font-family:Hanken Grotesk,sans-serif;font-weight:700}.tab,button,.btn{font-family:Hanken Grotesk,sans-serif}label,.form-label,.tab,button,input,select,textarea,.checkbox-label,.radio-label,.status,strong{font-weight:500}.app{display:flex;flex-direction:column;height:100%}.header{display:flex;align-items:center;background:#fff;border-bottom:1px solid #ddd;padding:8px 16px;flex-wrap:wrap;gap:8px}.header-logo{height:50px;flex-shrink:0}.header-title{font-family:Fuzzy Bubbles,sans-serif;font-style:normal;font-weight:700;font-size:26px;color:var(--subtitle-color);flex:1;padding-left:14px;border-left:1px solid #ddd;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.01em}.tabs{display:flex;background:#fff;flex-wrap:wrap}.hamburger-btn{display:none;background:none;border:none;cursor:pointer;color:#555;padding:6px;margin-left:auto;border-radius:4px;align-items:center;justify-content:center;flex-shrink:0}.hamburger-btn:hover{background:#f5f5f5;color:#333}.header-wrapper{position:relative;flex-shrink:0;z-index:1100}.mobile-menu{position:absolute;top:100%;left:0;right:0;background:#fff;z-index:1200;box-shadow:0 4px 16px #0000001f;border-bottom:1px solid #ddd;display:flex;flex-direction:column}.mobile-menu-item{display:flex;align-items:center;gap:12px;padding:14px 20px;border:none;border-bottom:1px solid #f0f0f0;background:none;cursor:pointer;font-family:Hanken Grotesk,sans-serif;font-size:16px;font-weight:500;color:#555;text-align:left;width:100%;transition:background .2s}.mobile-menu-item:last-child{border-bottom:none}.mobile-menu-item:hover{background:#f5f5f5;color:#333}.mobile-menu-item.active{color:#c30b82;background:#fff7fd}@media (max-width: 768px){.header-logo{height:32px}.header-title{font-size:18px}.tabs{display:none}.hamburger-btn{display:flex}}.tab{padding:12px 20px;border:none;background:none;cursor:pointer;font-family:Hanken Grotesk,sans-serif;font-size:16px;font-weight:700;color:#666;border-bottom:3px solid transparent;transition:all .2s}.tab:hover{color:#333;background:#f5f5f5}.tab.active{color:#c30b82;border-bottom-color:#c30b82}.tab-icon{vertical-align:middle;margin-right:6px}@media (min-width: 1024px){.photo-camera-btn{display:none!important}}@media (min-width: 769px) and (max-width: 1024px){.tab-label{display:none}.tab-icon{margin-right:0}.tab{padding:12px 14px}}.content{flex:1;overflow:hidden;position:relative}.map-container{height:100%;width:100%}.form-container,.admin-container{height:100%;width:100%;overflow-y:auto;background:#f8f9fa;padding:20px}.card{background:#fff;border-radius:12px;padding:24px;margin-bottom:16px;box-shadow:0 2px 8px #00000014;max-width:600px;margin-left:auto;margin-right:auto}.about-card{max-width:760px}.about-card h1{margin-bottom:16px;color:var(--primary-color)}.about-card p{margin-bottom:16px;color:var(--text-color);line-height:1.7}.about-card p:last-child{margin-bottom:0}.about-logo-section{margin:24px 0 0;text-align:center}.about-logo{max-width:300px;width:100%;border-radius:8px}.about-links-section{margin-top:28px;padding-top:20px;border-top:1px solid var(--secondary-color)}.about-links-section h2{margin-bottom:14px;color:var(--primary-color);font-size:1.05rem}.about-links-grid{display:grid;gap:12px}.about-link-card{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border:1px solid var(--secondary-color);border-radius:10px;background:var(--secondary-color-soft);color:var(--link-color-muted);text-decoration:none;transition:background .2s,border-color .2s}.about-link-card:hover{border-color:var(--answer-color-darker);background:#f3f3f3}.about-link-card:hover .about-link-content{text-decoration:underline}.about-link-icon{color:var(--primary-color);font-size:20px;margin-top:2px}.about-link-image{width:20px;height:20px;margin-top:2px;object-fit:contain;flex:0 0 20px}.about-link-content{display:flex;flex-direction:column;gap:2px}.about-link-content strong{color:var(--text-color)}.about-link-content span{line-height:1.5}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:6px;font-weight:200;color:var(--text-color)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:12px 14px;border:1px solid #e0e0e0;border-radius:5px;font-size:15px;background:#fafafa;transition:border-color .2s,box-shadow .2s;resize:vertical}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#c30b82;background:#fff;box-shadow:0 0 0 3px #c30b821a}.form-group textarea::placeholder{font-size:.75rem}.checkbox-group,.radio-group{display:flex;gap:8px}.checkbox-group{flex-direction:column;gap:2px}.radio-group{flex-direction:row;flex-wrap:wrap}.checkbox-label,.radio-label{display:flex;align-items:flex-start;gap:12px;cursor:pointer;font-weight:400;padding:4px 16px;background:var(--answer-color);border-radius:8px;transition:background .2s;line-height:1.2}.radio-label{margin-bottom:0;align-items:center;justify-content:flex-start;min-height:40px;padding:12px 16px}.checkbox-label:hover,.radio-label:hover{background:#f0f0f0}.checkbox-label input,.radio-label input{width:auto;margin:2px 8px 0 0;accent-color:#c30b82;flex-shrink:0}.radio-label input{margin:0 8px 0 0;align-self:center}.mini-map{height:200px;border-radius:8px;margin-top:8px;overflow:hidden}@media (min-width: 768px){.mini-map{height:350px}}.btn{padding:10px 20px;border:none;border-radius:6px;font-size:15px;font-weight:500;cursor:pointer;transition:all .2s}.btn-primary{background:#c30b82;color:#fff}.btn-primary:hover{background:#a0096a}.btn-primary:disabled{background:#ccc;cursor:not-allowed}.btn-success{background:#2ecc71;color:#fff}.btn-success:hover{background:#27ae60}.btn-danger{background:#e74c3c;color:#fff}.btn-danger:hover{background:#c0392b}.btn-secondary{background:#95a5a6;color:#fff}.btn-secondary:hover{background:#7f8c8d}.incident-type-selector{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}@media (max-width: 600px){.incident-type-selector{grid-template-columns:1fr 1fr}}.type-option{min-width:0;padding:16px 12px;border:2px solid #e0e0e0;border-radius:10px;cursor:pointer;text-align:center;transition:all .2s;background:#fafafa}.type-option:hover{border-color:#c30b82;background:#f5f5f5}.type-option.selected{border-color:#c30b82;background:#fce4ec}.type-option .icon{font-size:28px;margin-bottom:6px}.type-option .icon .material-icons{color:var(--primary-color)}.type-option .label{font-size:13px;color:#666;font-weight:500}.popup-content{min-width:150px}.popup-content .type-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:14px;margin-bottom:8px}.popup-content .type-badge.accident{background:var(--accident-color-soft);color:var(--accident-color)}.popup-content .type-badge.danger{background:var(--danger-color-soft);color:var(--danger-color)}.popup-content .type-badge.good{background:var(--good-color-soft);color:var(--good-color)}.popup-content .type-badge.change{background:var(--change-color-soft);color:var(--change-color)}.popup-content .popup-timestamp{margin-top:4px;margin-bottom:8px;font-size:12px;color:var(--answer-color-dark)}.admin-list{display:flex;flex-direction:column;gap:12px}.admin-item{display:flex;gap:12px;align-items:flex-start;background:#fff;padding:16px;border-radius:8px;box-shadow:0 1px 3px #0000001a}.admin-item .status{padding:2px 8px;border-radius:4px;font-size:12px;font-weight:500}.admin-item .status.pending{background:#fff3e0;color:#e65100}.admin-item .status.approved{background:#e8f5e9;color:#2e7d32}.admin-item .status.rejected{background:#ffebee;color:#c62828}.admin-item .info{flex:1}.admin-item .coords{font-size:13px;color:#666}.admin-item .description{margin-top:8px;font-size:14px}.admin-item .actions{display:flex;gap:8px}.admin-item .photo{max-width:100px;max-height:100px;border-radius:4px;object-fit:cover}.login-form{max-width:400px;margin:100px auto;text-align:center}.login-form h2{margin-bottom:20px}.back-button{display:inline-flex;align-items:center;gap:4px;padding:8px 16px;margin-bottom:16px;background:#fff;border:1px solid #ddd;border-radius:6px;cursor:pointer;font-size:14px}.back-button:hover{background:#f5f5f5}.success-message{text-align:center;padding:40px}.success-message .icon{font-size:64px;color:#2ecc71;margin-bottom:16px}.success-message h3{margin-bottom:8px;color:#2ecc71}@media (max-width: 600px){.form-container,.admin-container{padding:12px}.type-option{min-width:100px}.admin-item{flex-direction:column}.admin-item .actions{width:100%}.admin-item .actions .btn{flex:1}}.camera-overlay{padding:10px;background:#f5f5f5;border-radius:8px;margin-bottom:10px}.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal{background:#fff;border-radius:12px;padding:24px;max-width:400px;width:100%;text-align:center}.modal h3{margin-bottom:12px;color:#333}.modal p{color:#666;margin-bottom:0}.persona-selector{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(86px,1fr))}.persona-option{width:100%;min-height:92px;padding:12px 8px;border:2px solid #e0e0e0;border-radius:10px;cursor:pointer;text-align:center;transition:all .2s;background:#fafafa;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.persona-option:hover{border-color:#c30b82;background:#f5f5f5}.persona-option.selected{border-color:#c30b82;background:#fce4ec}.persona-option .persona-icon{width:36px;height:36px;flex:0 0 36px;object-fit:contain;margin-bottom:6px;display:block}.persona-option .persona-label{font-size:13px;color:#666;font-weight:500}.pin-marker{background:none;border:none}.pin-container{position:relative;display:flex;flex-direction:column;align-items:center}.pin-bubble{width:40px;height:40px;border-radius:50%;background:#fff;box-shadow:0 2px 6px #0000004d;display:flex;align-items:center;justify-content:center;overflow:hidden;border:4px solid}.pin-container.test-data .pin-bubble{background-color:var(--test-color)}.pin-icon{width:32px;height:32px;object-fit:contain}.pin-point{width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-top:10px solid;margin-top:-2px}.custom-cluster-icon{background:none;border:none}.cluster-icon{display:flex;align-items:center;justify-content:center;border-radius:50%;font-weight:700;color:#fff;box-shadow:0 2px 6px #0000004d}.cluster-icon span{font-size:14px}.cluster-small{width:36px;height:36px;background:#c30b82;font-size:12px}.cluster-medium{width:44px;height:44px;background:#e65100}.cluster-large{width:52px;height:52px;background:#c62828}.popup-detail-btn{margin-top:10px;width:100%}.popup-more-btn{border:none;background:transparent;padding:0;margin-left:4px;color:var(--answer-color-darker);cursor:pointer;font:inherit}.popup-more-btn:hover{text-decoration:underline}@keyframes slideIn{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes slideOut{0%{transform:translate(0)}to{transform:translate(-100%)}}.sidebar-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0000004d;z-index:1000}.sidebar-overlay.closing{animation:fadeOut .3s ease forwards}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.sidebar{position:absolute;top:67px;left:0;bottom:0;width:100%;max-width:400px;background:#fff;box-shadow:2px 0 10px #0003;display:flex;flex-direction:column;animation:slideIn .3s ease}.sidebar.slide-out{animation:slideOut .3s ease forwards}.sidebar-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e0e0e0;color:var(--subtitle-color)}.sidebar-header h2{margin:0;font-size:18px}.sidebar-close{background:none;border:none;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;color:#666}.sidebar-close:hover{color:#333}.sidebar-photo{width:100%;max-height:250px;overflow:hidden;flex-shrink:0;margin:-16px -20px 16px;width:calc(100% + 40px)}.sidebar-photo img{width:100%;height:100%;object-fit:cover;cursor:zoom-in}.photo-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b8;z-index:1200;display:flex;align-items:center;justify-content:center;padding:16px}.photo-modal{position:relative;width:min(1100px,100%);max-height:100%;display:flex;align-items:center;justify-content:center}.photo-modal img{width:100%;max-height:calc(100vh - 32px);object-fit:contain;border-radius:10px;background:#111}.photo-modal-close{position:absolute;top:8px;right:8px;width:36px;height:36px;border:none;border-radius:50%;background:#000000a8;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer}.photo-modal-close:hover{background:#000c}@media (min-width: 768px){.photo-modal-overlay{padding:32px}.photo-modal img{max-height:calc(100vh - 64px)}}@media (min-width: 1200px){.photo-modal-overlay{padding:56px}.photo-modal img{max-height:calc(100vh - 112px)}}@media (max-width: 480px){.photo-modal-overlay{padding:8px}.photo-modal img{max-height:calc(100vh - 16px);border-radius:8px}}.sidebar-content{flex:1;overflow-y:auto;padding:16px 20px}.sidebar-type{padding-left:12px;border-left:4px solid var(--incident-default-color);margin-bottom:16px}.sidebar-type .type-badge{background:var(--incident-default-color-soft);color:var(--incident-default-color)}.sidebar-type.incident-type-danger{border-left-color:var(--danger-color)}.sidebar-type.incident-type-danger .type-badge{background:var(--danger-color-soft);color:var(--danger-color)}.sidebar-type.incident-type-accident{border-left-color:var(--accident-color)}.sidebar-type.incident-type-accident .type-badge{background:var(--accident-color-soft);color:var(--accident-color)}.sidebar-type.incident-type-good{border-left-color:var(--good-color)}.sidebar-type.incident-type-good .type-badge{background:var(--good-color-soft);color:var(--good-color)}.sidebar-type.incident-type-change{border-left-color:var(--change-color)}.sidebar-type.incident-type-change .type-badge{background:var(--change-color-soft);color:var(--change-color)}.sidebar-field{margin-bottom:16px}.sidebar-field label{display:block;font-size:12px;color:#666;margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}.sidebar-field p{margin:0;color:#333;line-height:1.5}.sidebar-field a{color:#c30b82;word-break:break-all}.sidebar-good-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px}.sidebar-good-list-item{position:relative;margin:0;padding:9px 10px 9px 28px;background:#f8fafc;border:1px solid #e7ecf3;border-radius:10px;color:#456e83;line-height:1;font-size:14px}.sidebar-good-list-item:before{content:"";position:absolute;left:11px;top:50%;width:8px;height:8px;border-radius:50%;background:#456e83;transform:translateY(-50%)}.sidebar-persona-badges{display:flex;flex-wrap:wrap;gap:8px}.sidebar-persona-badge{width:36px;height:36px;border-radius:50%;background:#fff;border:2px solid var(--incident-default-color);box-shadow:0 1px 3px #00000026;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.sidebar-persona-badges.incident-type-danger .sidebar-persona-badge{border-color:var(--danger-color)}.sidebar-persona-badges.incident-type-accident .sidebar-persona-badge{border-color:var(--accident-color)}.sidebar-persona-badges.incident-type-good .sidebar-persona-badge{border-color:var(--good-color)}.sidebar-persona-badges.incident-type-change .sidebar-persona-badge{border-color:var(--change-color)}.sidebar-persona-badges.sidebar-persona-badges-primary .sidebar-persona-badge{border-color:var(--primary-color)}.sidebar-persona-badge img{width:24px;height:24px;object-fit:contain}.sidebar-type-with-police{display:flex;align-items:center;gap:18px}.sidebar-police-badge{width:36px;height:36px;border-radius:50%;background:#fff;border:2px solid;box-shadow:0 1px 3px #00000026;overflow:hidden;display:inline-flex;align-items:center;justify-content:center}.sidebar-police-badge.reported{border-color:var(--primary-color)}.sidebar-police-badge.not-reported{border-color:var(--answer-color-dark)}.sidebar-police-badge img{width:22px;height:22px;object-fit:contain}@media (max-width: 768px){.sidebar{top:49px}}@media (max-width: 480px){.sidebar{max-width:100%}.sidebar-header,.sidebar-content{padding:12px 16px}.sidebar-content .sidebar-photo{margin:-12px -16px 12px;width:calc(100% + 32px)}}
