@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Inter:wght@400;500;600;700;800&display=swap";:root{color:#0f172a;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--primary:#2563eb;--primary-hover:#1d4ed8;--primary-light:#eff6ff;--bg-main:#f8fafc;--card-bg:#fff;--text-main:#0f172a;--text-muted:#64748b;--border-color:#e2e8f0;--status-pending-bg:#fef3c7;--status-pending-text:#92400e;--status-diproses-bg:#e0f2fe;--status-diproses-text:#075985;--status-selesai-bg:#dcfce7;--status-selesai-text:#166534;--status-ditolak-bg:#fee2e2;--status-ditolak-text:#991b1b;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:18px;--radius-pill:9999px;--shadow-sm:0 1px 3px #0f172a0d;--shadow-md:0 4px 12px #0f172a0f;--shadow-lg:0 8px 24px #0f172a14;--ease-spring:cubic-bezier(.16, 1, .3, 1);--ease-smooth:cubic-bezier(.25, .1, .25, 1);--transition-fast:.18s cubic-bezier(.16, 1, .3, 1);--transition-normal:.28s cubic-bezier(.16, 1, .3, 1);--transition-smooth:.4s cubic-bezier(.16, 1, .3, 1);background-color:#f8fafc;font-family:Plus Jakarta Sans,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-weight:400;line-height:1.5}@keyframes wcFadeSlideUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes wcPulseDot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.65;transform:scale(1.35)}}.animate-fade-up{animation:wcFadeSlideUp .55s var(--ease-spring) both}.animate-stagger-1{animation:wcFadeSlideUp .5s var(--ease-spring) 40ms both}.animate-stagger-2{animation:wcFadeSlideUp .5s var(--ease-spring) .1s both}.animate-stagger-3{animation:wcFadeSlideUp .5s var(--ease-spring) .16s both}.animate-stagger-4{animation:wcFadeSlideUp .5s var(--ease-spring) .22s both}.pulse-dot-active{animation:2.2s ease-in-out infinite wcPulseDot}.interactive-card{transition:transform var(--transition-normal), box-shadow var(--transition-normal), border-color var(--transition-normal)}.interactive-card:hover{border-color:#cbd5e1;transform:translateY(-2.5px);box-shadow:0 8px 24px #0f172a12}.interactive-button{transition:transform var(--transition-fast), box-shadow var(--transition-fast), background-color var(--transition-fast)}.interactive-button:hover{transform:translateY(-1.5px)}.interactive-button:active{transform:translateY(.5px)scale(.985)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}*{box-sizing:border-box}html,body{scroll-behavior:smooth;width:100%;max-width:100%;margin:0;padding:0;position:relative;overflow-x:hidden}body{background:var(--bg-main);min-height:100vh;color:var(--text-main)}#root{flex-direction:column;width:100%;max-width:100%;min-height:100vh;display:flex;overflow-x:hidden}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer;background:0 0;border:none;transition:all .2s ease-in-out}img{max-width:100%;display:block}.badge{white-space:nowrap;border-radius:9999px;align-items:center;gap:.35rem;padding:.3rem .75rem;font-size:.825rem;font-weight:600;line-height:1;display:inline-flex}.badge-pending{background:var(--status-pending-bg);color:var(--status-pending-text)}.badge-diproses{background:var(--status-diproses-bg);color:var(--status-diproses-text)}.badge-selesai{background:var(--status-selesai-bg);color:var(--status-selesai-text)}.badge-ditolak{background:var(--status-ditolak-bg);color:var(--status-ditolak-text)}.badge-role-warga{color:#475569;background:#f1f5f9;border:1px solid #cbd5e1}.badge-role-admin{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe}.badge-pinned{color:#b45309;background:#fef3c7;border:1px solid #fde68a}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;background:#0f172a99;justify-content:center;align-items:center;padding:1.25rem;animation:.25s cubic-bezier(.16,1,.3,1) fadeIn;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-content{background:#fff;border-radius:16px;flex-direction:column;width:100%;max-width:600px;max-height:90vh;animation:.25s cubic-bezier(.16,1,.3,1) scaleUp;display:flex;overflow:hidden;box-shadow:0 25px 50px -12px #0f172a40,0 0 0 1px #0f172a0d}.modal-header{background:#fff;border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.5rem 1.75rem;display:flex}.modal-title-wrapper{align-items:center;gap:.75rem;display:flex}.modal-title-icon{color:#2563eb;background:#eff6ff;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.modal-title{color:#0f172a;margin:0;font-size:1.35rem;font-weight:700;line-height:1.3}.modal-subtitle{color:#64748b;margin:.25rem 0 0;font-size:.875rem}.modal-close-btn{color:#64748b;cursor:pointer;background:#f8fafc;border:1px solid #e2e8f0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;transition:all .2s;display:flex}.modal-close-btn:hover{color:#0f172a;background:#f1f5f9;transform:rotate(90deg)}.modal-content form{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.modal-body{-webkit-overflow-scrolling:touch;flex:1;min-height:0;max-height:calc(90vh - 140px);padding:1.75rem;overflow-y:auto}.modal-footer{background:#f8fafc;border-top:1px solid #f1f5f9;justify-content:flex-end;align-items:center;gap:.75rem;padding:1.25rem 1.75rem;display:flex}.form-group{flex-direction:column;gap:.4rem;display:flex}.form-label{color:#334155;align-items:center;gap:.35rem;font-size:.875rem;font-weight:600;display:flex}.form-label-required{color:#dc2626;margin-left:2px}.input-icon-group{align-items:center;width:100%;display:flex;position:relative}.input-icon{color:#94a3b8;pointer-events:none;flex-shrink:0;transition:color .2s;position:absolute;left:1rem}.input-with-icon{padding-left:2.75rem!important}.input-icon-group:focus-within .input-icon{color:#2563eb}.form-input,.form-select,.form-textarea{color:#0f172a;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:14px;outline:none;width:100%;padding:.75rem 1rem;font-size:.925rem;font-weight:500;transition:all .2s cubic-bezier(.16,1,.3,1)}.form-input:hover,.form-select:hover,.form-textarea:hover{background:#fff;border-color:#cbd5e1}.form-input:focus,.form-select:focus,.form-textarea:focus{background:#fff;border-color:#2563eb;box-shadow:0 0 0 4px #2563eb1f}.form-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2364748b' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");background-position:right 1rem center;background-repeat:no-repeat;background-size:1.15rem;padding-right:2.75rem!important}.form-textarea{resize:vertical;min-height:90px;line-height:1.5}.btn-primary{color:#fff;cursor:pointer;background:linear-gradient(135deg,#2563eb,#1d4ed8);border:none;border-radius:999px;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:.925rem;font-weight:700;transition:all .2s;display:inline-flex;box-shadow:0 4px 14px #2563eb4d}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px #2563eb66}.btn-secondary{color:#475569;cursor:pointer;background:#fff;border:1.5px solid #cbd5e1;border-radius:999px;align-items:center;gap:.4rem;padding:.75rem 1.35rem;font-size:.925rem;font-weight:600;transition:all .2s;display:inline-flex}.btn-secondary:hover{color:#0f172a;background:#f8fafc;border-color:#94a3b8}.form-grid-3{grid-template-columns:1fr 1fr 1fr;gap:1rem;display:grid}.form-grid-rt-rw-phone{grid-template-columns:100px 100px 1fr;gap:.75rem;display:grid}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleUp{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media (width<=768px){h1{font-size:1.5rem}h2{font-size:1.25rem}h3{font-size:1.125rem}.form-grid-2,.form-grid-3,.form-grid-rt-rw-phone{grid-template-columns:1fr}.modal-content{border-radius:20px;max-height:95vh}.modal-header,.modal-body,.modal-footer{padding:1.25rem}}.location-picker{gap:.65rem;display:grid}.location-picker__header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.location-picker__label{color:#0f172a;align-items:center;gap:.35rem;font-size:.9rem;font-weight:700;display:flex}.location-picker__gps-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#2563eb,#3b82f6);border:none;border-radius:999px;align-items:center;gap:.35rem;padding:.45rem .85rem;font-size:.8rem;font-weight:600;transition:all .2s;display:inline-flex;box-shadow:0 2px 8px #2563eb40}.location-picker__gps-btn:hover{background:linear-gradient(135deg,#1d4ed8,#2563eb);transform:translateY(-1px);box-shadow:0 4px 12px #2563eb59}.location-picker__gps-btn:disabled{opacity:.7;cursor:not-allowed;transform:none}.location-picker__error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;padding:.5rem .75rem;font-size:.8rem}.location-picker__map-container{border:2px solid #e2e8f0;border-radius:14px;width:100%;height:260px;transition:border-color .2s;position:relative;overflow:hidden}.location-picker__map-container:hover{border-color:#94a3b8}.location-picker__overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);color:#64748b;pointer-events:none;z-index:500;background:#ffffffbf;flex-direction:column;justify-content:center;align-items:center;gap:.4rem;font-size:.85rem;font-weight:600;display:flex;position:absolute;inset:0}.location-picker__coords{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.location-picker__coord-badge{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;align-items:center;gap:.3rem;padding:.35rem .7rem;font-family:SF Mono,Cascadia Code,Fira Code,monospace;font-size:.78rem;font-weight:600;display:inline-flex}.location-picker__geocoding{color:#64748b;align-items:center;gap:.3rem;font-size:.78rem;font-weight:500;display:inline-flex}.location-picker__address-input{gap:.3rem;display:grid}.location-picker__address-label{color:#334155;font-size:.85rem;font-weight:600}.location-picker__address-display{color:#475569;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;align-items:flex-start;gap:.4rem;padding:.6rem .85rem;font-size:.85rem;line-height:1.4;display:flex}.leaflet-container{z-index:1}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin-icon{animation:1s linear infinite spin}.photo-evidence-upload{text-align:center;background:#fafbfc;border:2px dashed #cbd5e1;border-radius:14px;padding:1.25rem;transition:all .2s}.photo-evidence-upload:hover{background:#f1f5f9;border-color:#94a3b8}.photo-evidence-upload__btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#0ea5e9,#2563eb);border:none;border-radius:10px;align-items:center;gap:.4rem;padding:.6rem 1.1rem;font-size:.875rem;font-weight:600;transition:all .2s;display:inline-flex;box-shadow:0 2px 8px #0ea5e940}.photo-evidence-upload__btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0ea5e959}.photo-evidence-preview{border:1px solid #e2e8f0;border-radius:12px;max-height:200px;margin-top:.75rem;position:relative;overflow:hidden}.photo-evidence-preview img{object-fit:cover;width:100%;max-height:200px;display:block}.report-mini-map{border:1px solid #e2e8f0;border-radius:12px;width:100%;height:150px;overflow:hidden}.report-detail-map{border:1px solid #e2e8f0;border-radius:12px;width:100%;height:220px;overflow:hidden}@keyframes pulseGlow{0%{box-shadow:0 0 #22c55e99}70%{box-shadow:0 0 0 6px #22c55e00}to{box-shadow:0 0 #22c55e00}}@keyframes chatSlideUp{0%{opacity:0;transform:translateY(20px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes typingBounce{0%,80%,to{opacity:.4;transform:translateY(0)}40%{opacity:1;transform:translateY(-5px)}}.chat-online-badge{background-color:#22c55e;border-radius:50%;width:8px;height:8px;animation:2s infinite pulseGlow;display:inline-block}.chat-window-animation{animation:.28s cubic-bezier(.16,1,.3,1) forwards chatSlideUp}.typing-dot{background-color:#2563eb;border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite typingBounce;display:inline-block}.typing-dot:first-child{animation-delay:0s}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}.chat-suggestion-chip{color:#2563eb;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #bfdbfe;border-radius:999px;padding:.4rem .75rem;font-size:.8rem;font-weight:600;transition:all .2s;box-shadow:0 2px 6px #2563eb0f}.chat-suggestion-chip:hover{color:#1d4ed8;background:#eff6ff;border-color:#2563eb;transform:translateY(-1px);box-shadow:0 4px 10px #2563eb1f}@media print{body *{visibility:hidden!important}#printable-report-document,#printable-report-document *{visibility:visible!important}#printable-report-document{color:#0f172a!important;width:100%!important;box-shadow:none!important;background:#fff!important;border:none!important;margin:0!important;padding:0!important;position:absolute!important;top:0!important;left:0!important}.no-print,.no-print *,header,footer,nav,aside{visibility:hidden!important;display:none!important}#printable-report-document tr,#printable-report-document table{break-inside:avoid!important;page-break-inside:avoid!important}@page{size:A4 portrait;margin:10mm 12mm}}.table-responsive{-webkit-overflow-scrolling:touch;background:#fff;border-radius:14px;width:100%;overflow-x:auto}.table-responsive table{border-collapse:collapse;width:100%;min-width:600px}.form-grid-2{grid-template-columns:1fr 1fr;gap:1.25rem;display:grid}@media (width>=769px){.desktop-nav{display:flex!important}.mobile-toggle-wrapper,.mobile-drawer{display:none!important}}@media (width<=768px){.desktop-nav{display:none!important}.mobile-toggle-wrapper{display:flex!important}.form-grid-2{grid-template-columns:1fr;gap:1rem}.modal-overlay{align-items:flex-end;padding:.75rem}.modal-content{border-bottom-right-radius:0;border-bottom-left-radius:0;max-height:92vh}.modal-header{padding:1.2rem 1.25rem}.modal-body{padding:1.25rem}.modal-footer{flex-direction:column-reverse;gap:.5rem;padding:1rem 1.25rem}.modal-footer button{justify-content:center;width:100%}}@media (width<=640px){body{font-size:14px}.desktop-only{display:none!important}.mobile-full-width{width:100%!important}}.mobile-bottom-nav,.mobile-bottom-nav-spacer{display:none}.mobile-bottom-nav a,.mobile-bottom-nav button{-webkit-tap-highlight-color:transparent}@media (width<=768px){.mobile-bottom-nav{-webkit-backdrop-filter:blur(20px);z-index:1000;background:#fffffff5;border-top:1px solid #e2e8f0;justify-content:space-around;align-items:center;height:64px;padding:0 .25rem;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 25px #0f172a14;display:flex!important;overflow:visible!important}.mobile-bottom-nav-spacer{height:72px;display:block!important}.live-chat-floating-btn{border-radius:50%!important;width:48px!important;height:48px!important;padding:0!important;bottom:20px!important;right:16px!important;box-shadow:0 4px 16px #2563eb66!important}.live-chat-label,.live-chat-sparkle{display:none!important}body:has(.mobile-bottom-nav) .live-chat-floating-btn{bottom:78px!important}.hero-cta-buttons{grid-template-columns:1fr 1fr!important;gap:.65rem!important;display:grid!important}.hero-btn-primary,.hero-btn-secondary{text-align:center!important;width:100%!important;padding:.75rem .5rem!important;font-size:.875rem!important}.civic-header-divider,.civic-header-sub,.tab-desktop-text{display:none!important}.tab-mobile-text{display:inline!important}body:has(.bulk-selection-bar) .live-chat-floating-btn{transition:bottom .25s;bottom:148px!important}}.bulk-selection-bar{-webkit-backdrop-filter:blur(16px);z-index:9990;white-space:nowrap;background:#fffffffa;border:1px solid #e2e8f0;border-radius:20px;align-items:center;gap:1.25rem;padding:.85rem 1.4rem;animation:.3s slideUp;display:flex;position:fixed;bottom:2rem;left:50%;transform:translate(-50%);box-shadow:0 20px 50px #0f172a2e,0 0 0 1px #0f172a14}@media (width<=768px){.bulk-selection-bar{border-radius:16px;justify-content:space-between;gap:.5rem;width:calc(100vw - 1.25rem);max-width:480px;padding:.65rem .85rem;box-shadow:0 10px 30px #0f172a38;bottom:76px!important}.bulk-selection-bar .bulk-count-text{text-overflow:ellipsis;white-space:nowrap;max-width:110px;overflow:hidden;font-size:.8rem!important}.bulk-selection-bar button{padding:.4rem .65rem!important;font-size:.8rem!important}.bulk-selection-bar .divider{height:18px!important;margin:0 .1rem!important}}@keyframes mobileSheetSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes backdropFadeIn{0%{opacity:0}to{opacity:1}}@keyframes skeletonShimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,#f1f5f9 25%,#e2e8f0 37%,#f1f5f9 63%) 0 0/400% 100%;border-radius:12px;animation:1.4s ease-in-out infinite skeletonShimmer}.skeleton-text{border-radius:6px;height:1rem}@keyframes heroFloatA{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes heroFloatB{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes heroFloatC{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes pinBob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes checkPulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.anim-badge-1{animation:4.8s cubic-bezier(.45,.05,.55,.95) infinite heroFloatA}.anim-badge-2{animation:5.4s cubic-bezier(.45,.05,.55,.95) .8s infinite heroFloatB}.anim-badge-3{animation:5s cubic-bezier(.45,.05,.55,.95) 1.5s infinite heroFloatC}.anim-pin{animation:3.8s cubic-bezier(.45,.05,.55,.95) infinite pinBob}.anim-check{transform-origin:15px 24px;animation:3s cubic-bezier(.45,.05,.55,.95) infinite checkPulse}.loader-container{justify-content:center;align-items:center;padding:1rem;display:flex}.loader-ring{border-style:solid;border-color:#2563eb #e2e8f0 #e2e8f0;border-radius:50%;animation:.75s linear infinite wc-spin}.loader-sm .loader-ring{border-width:2px;width:18px;height:18px}.loader-md .loader-ring{border-width:3px;width:32px;height:32px}.loader-lg .loader-ring{border-width:4px;width:48px;height:48px}@keyframes wc-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
