@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--primary:#2196f3;--primary-hover:#1976d2;--primary-dark:#0056b3;--bg-app:#f4f6f8;--bg-sidebar:#2196f3;--bg-card:#fff;--text-dark:#1e293b;--text-muted:#64748b;--border:#e2e8f0;--status-resolved:#10b981;--status-resolved-bg:#e6fbf4;--status-inprogress:#f97316;--status-inprogress-bg:#fff7ed;--status-rejected:#ef4444;--status-rejected-bg:#fef2f2;--status-pending:#64748b;--status-pending-bg:#f1f5f9;--font-family:"Inter", system-ui, -apple-system, sans-serif;--shadow-sm:0 1px 2px 0 #0000000d;--shadow:0 4px 6px -1px #0000000d, 0 2px 4px -1px #00000005;--shadow-md:0 10px 15px -3px #0000000a, 0 4px 6px -4px #0000000a;--shadow-lg:0 20px 25px -5px #00000014, 0 10px 10px -5px #00000008}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--bg-app);color:var(--text-dark);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh;display:flex}h1{color:var(--text-dark);margin-bottom:24px;font-size:28px;font-weight:700}h2{color:var(--text-dark);font-size:18px;font-weight:600}a{color:inherit;text-decoration:none}.table-container{width:100%;overflow-x:auto}.custom-table{border-collapse:separate;border-spacing:0 8px;text-align:left;width:100%}.custom-table th{color:var(--text-muted);border-bottom:1px solid var(--border);padding:12px 18px;font-size:14px;font-weight:600}.custom-table td{background-color:var(--bg-card);color:var(--text-dark);border-top:1px solid #f1f5f9;border-bottom:1px solid #f1f5f9;padding:16px 18px;font-size:15px}.custom-table tr td:first-child{border-left:1px solid #f1f5f9;border-top-left-radius:12px;border-bottom-left-radius:12px;font-weight:600}.custom-table tr td:last-child{border-right:1px solid #f1f5f9;border-top-right-radius:12px;border-bottom-right-radius:12px}.custom-table tbody tr{transition:transform .15s,box-shadow .15s}.custom-table tbody tr:hover td{background-color:#fcfdfe}.status-badge{text-align:center;border-radius:20px;align-items:center;padding:6px 16px;font-size:14px;font-weight:600;display:inline-flex}.status-badge.resolved{background-color:var(--status-resolved-bg);color:var(--status-resolved)}.status-badge.pending{background-color:var(--status-pending-bg);color:var(--status-pending)}.status-badge.inprogress{background-color:var(--status-inprogress-bg);color:var(--status-inprogress)}.status-badge.rejected{background-color:var(--status-rejected-bg);color:var(--status-rejected)}.search-input-wrapper{align-items:center;display:flex;position:relative}.search-input{border:1px solid var(--border);width:260px;color:var(--text-dark);box-shadow:var(--shadow-sm);background-color:#fff;border-radius:12px;outline:none;padding:12px 16px 12px 42px;font-size:15px;transition:all .2s}.search-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #35b5ff26}.search-icon{color:var(--text-muted);pointer-events:none;position:absolute;left:14px}.clear-search-icon{color:var(--text-muted);cursor:pointer;justify-content:center;align-items:center;display:flex;position:absolute;right:14px}.app-container{width:100%;height:100vh;display:flex;overflow:hidden}.content-wrapper{background-color:var(--bg-app);flex-direction:column;flex:1;height:100vh;display:flex;overflow-y:auto}.app-header{z-index:50;background-color:#fff;border-bottom:1.5px solid #e2e8f0;flex-shrink:0;justify-content:space-between;align-items:center;height:80px;padding:0 40px;display:flex;position:sticky;top:0;box-shadow:0 1px 3px #00000005}.header-profile-btn{cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;gap:10px;padding:6px 8px;display:flex}.header-profile-btn:hover{background:#f8fafc}.header-avatar{color:#64748b;background-color:#f1f5f9;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;display:flex;overflow:hidden}.header-avatar img,.admin-avatar-preview img{object-fit:cover;width:100%;height:100%}.admin-avatar-picker{cursor:pointer;width:92px;height:92px;margin:0 auto 22px;display:block;position:relative}.admin-avatar-picker input{display:none}.admin-avatar-preview{color:#64748b;background:#e0f2fe;border-radius:50%;justify-content:center;align-items:center;width:92px;height:92px;display:flex;overflow:hidden}.admin-avatar-camera{background:var(--primary);color:#fff;border:3px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;display:flex;position:absolute;bottom:2px;right:2px}.btn-primary{background-color:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:12px 20px;font-size:14px;font-weight:600}.main-content{flex:1;min-width:0;padding:40px}.sidebar{background-color:var(--bg-sidebar);color:#fff;flex-direction:column;flex-shrink:0;width:280px;height:100vh;display:flex;overflow-y:auto;box-shadow:4px 0 20px #35b5ff26}.sidebar-brand{letter-spacing:-.5px;border-bottom:1px solid #ffffff1a;align-items:center;gap:12px;padding:22px 20px;font-size:20px;font-weight:700;line-height:1.3;display:flex}.sidebar-logo{object-fit:contain;flex-shrink:0;width:48px;height:48px}.sidebar-menu{flex-direction:column;flex:1;gap:8px;padding:24px 0;display:flex}.sidebar-item{color:#ffffffd9;cursor:pointer;align-items:center;gap:16px;padding:16px 24px;font-size:16px;font-weight:600;transition:all .2s;display:flex;position:relative}.sidebar-item:hover{color:#fff;background-color:#ffffff1a}.sidebar-item.active{color:var(--primary-dark);box-shadow:none;background-color:#fff;border-radius:0;margin-left:0}.sidebar-footer{border-top:1px solid #ffffff1a;margin-top:auto}.header-title-group{flex-direction:column;gap:2px;display:flex}.header-title{color:#1e293b;margin:0;font-size:26px;font-weight:800;line-height:1.2}.header-subtitle{color:#64748b;margin:0;font-size:14px;font-weight:400}.header-user{cursor:pointer;border-radius:12px;outline:none;align-items:center;gap:12px;padding:8px 12px;transition:background-color .2s,opacity .2s;display:flex}.header-user:hover,.header-user:focus-visible{background-color:#0000000d}.header-user:active{opacity:.7}.header-profile-btn{border-radius:12px;gap:12px;padding:8px 12px}.header-avatar{color:#475569;background-color:#e2e8f0;flex-shrink:0;width:52px;height:52px}.header-user-info{text-align:left;flex-direction:column;display:flex}.header-user-name{color:#1e293b;font-size:15px;font-weight:700;line-height:1.3}.header-user-role{color:#64748b;font-size:12px;font-weight:400}.sidebar{background-color:#2196f3;overflow:hidden;box-shadow:2px 0 14px #2196f34d}.sidebar-brand{background:#2196f3;border-bottom:0;padding:28px 20px 22px}.sidebar-brand-content-wrapper{align-items:center;gap:12px;display:flex}.sidebar-brand-logo-circle{background:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;display:flex;overflow:hidden}.sidebar-brand-text{flex-direction:column;min-width:0;display:flex}.sidebar-brand-subtitle{color:#ffffffe6;letter-spacing:0;font-size:11px;line-height:1.25}.sidebar-menu-panel{background:#ffffff29;border-radius:24px;flex:1;min-height:0;margin:0 16px 20px;padding:12px;display:flex}.sidebar-menu-panel .sidebar-menu{width:100%;padding:0}.sidebar-menu-panel .sidebar-item{border-radius:16px;padding:14px 16px}.sidebar-menu-panel .sidebar-item.active{color:#1e293b;border-radius:16px}.logout-modal-overlay{z-index:200;background:#0f172a73;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.logout-modal-card{width:min(420px,100%);box-shadow:var(--shadow-lg);background:#fff;border-radius:22px;padding:28px}.logout-modal-title{color:#1e293b;margin:0 0 8px;font-size:20px}.logout-modal-text{color:#64748b;margin:0;font-size:14px}.logout-modal-actions{justify-content:flex-end;gap:12px;margin-top:24px;display:flex}.logout-modal-cancel,.logout-modal-confirm{cursor:pointer;border:0;border-radius:12px;padding:12px 18px;font-weight:700}.logout-modal-cancel{color:#334155;background:#f1f5f9}.logout-modal-confirm{color:#fff;background:#ef4444}.sidebar{width:280px;color:var(--text-sidebar);background-color:#2196f3;flex-direction:column;flex-shrink:0;height:100vh;display:flex;overflow:hidden;box-shadow:2px 0 14px #2196f34d}.sidebar-brand{color:#fff;background:#2196f3;border-bottom:0;flex-shrink:0;align-items:center;gap:12px;padding:28px 20px 22px;display:flex;position:relative}.sidebar-brand-content-wrapper{z-index:2;align-items:center;gap:12px;width:100%;display:flex;position:relative}.sidebar-brand-logo-circle{background-color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:58px;height:58px;display:flex;box-shadow:0 2px 8px #00000026}.sidebar-brand-logo-img{object-fit:contain;width:42px;height:42px}.sidebar-brand-title{color:#fff;font-size:18px;font-weight:800;line-height:1.2}.sidebar-brand-subtitle{color:#ffffffe6;letter-spacing:.1px;margin-top:2px;font-size:10px;font-weight:400;line-height:1.4}.sidebar-menu-panel{background:#fff;border-radius:28px 28px 0 0;flex-direction:column;flex:1;width:100%;margin:0;padding:0;display:flex;overflow-y:auto}.sidebar-menu-panel .sidebar-menu{flex-direction:column;flex:1;gap:6px;width:auto;padding:22px 12px 12px;display:flex}.sidebar-menu-panel .sidebar-item{color:#374151;cursor:pointer;border-radius:16px;align-items:center;gap:18px;padding:18px 24px;font-size:16px;font-weight:500;transition:all .2s;display:flex;position:relative}.sidebar-menu-panel .sidebar-item:hover{color:#111;background-color:#f1f5f9}.sidebar-menu-panel .sidebar-item.active{color:#fff;background-color:#2196f3;border-radius:16px;font-weight:700;box-shadow:0 4px 12px #2196f34d}.sidebar-menu-panel .sidebar-item svg{color:#374151;stroke-width:2.5px;width:20px;min-width:20px;height:20px}.sidebar-menu-panel .sidebar-item.active svg{color:#fff}.sidebar-footer{border-top:1.5px solid #f1f5f9;margin-top:auto;padding:12px 0}.sidebar-footer .sidebar-item{color:#111}.sidebar-footer .sidebar-item:hover{color:#ef4444;background-color:#fef2f2}.sidebar-footer .sidebar-item svg{color:inherit}.login-container{background-color:#fff;justify-content:center;align-items:center;width:100%;min-height:100vh;padding:20px;display:flex}.login-card{text-align:center;width:100%;max-width:400px;animation:.4s ease-out fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.login-header{margin-bottom:36px}.login-logo{object-fit:contain;width:120px;height:120px;margin-top:20px;margin-bottom:12px}.login-title{color:#000;margin-bottom:6px;font-size:24px;font-weight:700}.login-subtitle{color:var(--text-muted);font-size:15px}.login-form{flex-direction:column;gap:20px;display:flex}.input-group{align-items:center;display:flex;position:relative}.input-field{width:100%;color:var(--text-dark);background-color:#fff;border:1.5px solid #d1d5db;border-radius:12px;outline:none;padding:16px 44px;font-size:16px;transition:all .2s}.input-field::placeholder{color:#a3a3a3}.input-field:focus{border-color:#9ca3af}.input-prefix-icon{color:#9ca3af;pointer-events:none;position:absolute;left:16px}.input-suffix-btn{color:#9ca3af;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:absolute;right:16px}.login-forgot-pwd{text-align:right;margin-top:-8px}.forgot-pwd-link{color:#000;font-size:13px;font-weight:600}.forgot-pwd-link:hover{text-decoration:underline}.login-btn{background-color:var(--primary);color:#fff;letter-spacing:.5px;cursor:pointer;border:none;border-radius:12px;margin-top:12px;padding:16px;font-size:16px;font-weight:700;transition:background-color .2s,transform .1s;box-shadow:0 4px 12px #2196f34d}.login-btn:hover{background-color:var(--primary-hover)}.login-btn:active{transform:scale(.98)}.login-dialog-backdrop{z-index:1000;background:#0f172a73;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.login-dialog{width:min(380px,100%);box-shadow:var(--shadow-lg);text-align:center;background:#fff;border-radius:22px;padding:28px 24px}.login-dialog-icon{color:#fff;border-radius:50%;justify-content:center;align-items:center;width:54px;height:54px;margin:0 auto 16px;font-size:28px;font-weight:800;display:flex}.login-dialog-icon.is-success{background:#10b981}.login-dialog-icon.is-error{background:#ef4444}.login-dialog h2{color:#1e293b;margin:0 0 8px;font-size:20px}.login-dialog p{color:#64748b;margin:0;font-size:14px;line-height:1.5}.login-dialog button{color:#fff;cursor:pointer;background:#2196f3;border:none;border-radius:12px;min-width:110px;margin-top:22px;padding:12px 18px;font-weight:700}.stats-grid{grid-template-columns:repeat(5,1fr);gap:20px;margin-bottom:24px;display:grid}@media (width<=1200px){.stats-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=900px){.stats-grid{grid-template-columns:repeat(2,1fr)}}.stat-card-wrapper{position:relative}.dashboard-layout{grid-template-columns:1fr;align-items:start;gap:24px;display:grid}.dashboard-bottom-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:20px;display:grid}@media (width<=1200px){.dashboard-bottom-grid{grid-template-columns:1fr 1fr}}@media (width<=768px){.dashboard-bottom-grid{grid-template-columns:1fr}}.bottom-card{flex-direction:column;height:100%;min-height:330px;display:flex}.card{background-color:var(--bg-card);border:1.5px solid #e8ecf1;border-radius:20px;padding:24px;box-shadow:0 2px 8px #0000000a}.stat-card{text-align:center;border:2px solid #e8ecf1;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;padding:22px 16px;transition:transform .2s,box-shadow .2s;display:flex}.stat-card:hover{transform:translateY(-3px);box-shadow:0 8px 20px #00000014}.stat-title{color:var(--text-dark);letter-spacing:.2px;margin-bottom:8px;font-size:14px;font-weight:700}.stat-value{font-size:42px;font-weight:800;line-height:1}.stat-card.total{border-color:#e8ecf1}.stat-card.total .stat-value{color:#111827}.stat-card.pending{border-color:#e8ecf1}.stat-card.pending .stat-title{color:var(--text-dark)}.stat-card.pending .stat-value{color:#111827}.stat-card.inprogress{border-color:#e8ecf1}.stat-card.inprogress .stat-title{color:var(--text-dark)}.stat-card.inprogress .stat-value{color:#111827}.stat-card.resolved{border-color:#e8ecf1}.stat-card.resolved .stat-title{color:var(--text-dark)}.stat-card.resolved .stat-value{color:#111827}.stat-card.rejected{border-color:#e8ecf1}.stat-card.rejected .stat-title{color:var(--text-dark)}.stat-card.rejected .stat-value{color:#111827}.section-header{justify-content:space-between;align-items:center;min-height:24px;margin-bottom:16px;display:flex}.section-header h2{color:#1e293b;font-size:16px;font-weight:700}.view-all-link{color:#64748b;align-items:center;gap:4px;font-size:13px;font-weight:600;transition:opacity .2s;display:flex}.view-all-link:hover{opacity:.7}.chart-container{align-items:center;gap:22px;padding:6px 0 4px;display:flex}.pie-chart-wrapper{flex-shrink:0;width:120px;height:120px;position:relative}.pie-legend{flex-direction:column;flex:1;gap:12px;display:flex}.legend-item{color:var(--text-dark);justify-content:space-between;align-items:center;font-size:13px;display:flex}.legend-label-group{align-items:center;gap:8px;display:flex}.legend-color{border-radius:2px;width:12px;height:12px}.legend-color.inprogress{background-color:#2563eb}.legend-color.resolved{background-color:#10b981}.legend-color.rejected{background-color:#8b5cf6}.legend-value{color:var(--text-muted);font-weight:500}.status-bars{border-top:1px solid #e8ecf1;gap:10px;margin-top:18px;padding-top:16px;display:grid}.status-bar-row{gap:6px;display:grid}.status-bar-meta{color:#475569;justify-content:space-between;align-items:center;font-size:12px;font-weight:700;display:flex}.status-bar-meta strong{color:#1e293b;font-size:13px}.status-bar-track{background:#eef2f7;border-radius:999px;height:8px;overflow:hidden}.status-bar-fill{border-radius:inherit;height:100%;transition:width .2s}.map-preview{background-color:#e2e8f0;border-radius:12px;flex:1;width:100%;height:auto;min-height:210px;display:block;overflow:hidden}.dashboard-mini-map{width:100%;height:100%;min-height:180px}.dashboard-map-legend{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.dashboard-map-legend-item{color:#475569;align-items:center;gap:5px;font-size:11px;font-weight:700;display:inline-flex}.dashboard-map-legend-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px}.system-info-card{background:#fff;border-color:#e8ecf1}.system-info-content{flex-direction:column;flex:1;gap:14px;padding:4px 0 0;display:flex}.system-info-item{background:#f8fafc;border:1px solid #e8ecf1;border-radius:12px;align-items:center;gap:12px;min-height:72px;padding:14px;display:flex}.system-info-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.system-info-icon.users-icon{color:#1e293b;background-color:#1e293b14}.system-info-icon.admins-icon{color:#2563eb;background-color:#2563eb1a}.system-info-icon.super-admins-icon{color:#7c3aed;background-color:#8b5cf61a}.system-info-dot{flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.system-info-label{color:#475569;flex:1;font-size:14px;font-weight:500}.system-info-value{color:#1e293b;font-size:22px;font-weight:800}.super-admin-actions{gap:10px;margin-top:auto;display:grid}.super-admin-action{color:#1d4ed8;background:#eff6ff;border:1px solid #2563eb29;border-radius:12px;justify-content:space-between;align-items:center;min-height:44px;padding:0 14px;font-size:13px;font-weight:800;display:flex}.super-admin-action:hover{background:#dbeafe}.controls-row{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}@media (width<=768px){.controls-row{flex-direction:column;align-items:flex-start}}.filter-tabs{gap:10px;display:flex}.filter-tab{border:1px solid var(--border);color:var(--text-dark);cursor:pointer;box-shadow:var(--shadow-sm);background-color:#fff;border-radius:12px;padding:10px 24px;font-size:15px;font-weight:600;transition:all .2s}.filter-tab:hover{background-color:#f8fafc}.filter-tab.active{color:#fff;background-color:#2196f3;border-color:#2196f3}.report-modal-overlay{align-items:flex-start;padding:48px 28px;overflow-y:auto}.report-modal-content{width:min(1040px,100vw - 56px);height:min(780px,100vh - 96px);box-shadow:var(--shadow-lg);background-color:#fff;border-radius:20px;padding:26px;animation:.2s ease-out fadeIn;overflow-y:auto}.report-modal-grid{grid-template-columns:minmax(0,1.45fr) minmax(280px,.85fr);align-items:start;gap:18px;margin-bottom:18px;display:grid}@media (width<=768px){.report-modal-overlay{padding:24px 14px}.report-modal-content{width:calc(100vw - 28px);height:calc(100vh - 48px);padding:22px}.report-modal-grid{grid-template-columns:1fr}}.report-detail-row{grid-template-columns:136px minmax(0,1fr);gap:14px;margin-bottom:10px;font-size:14px;line-height:1.4;display:grid}.report-detail-label{color:var(--text-muted);font-weight:700}.report-detail-value{color:var(--text-dark);min-width:0;font-weight:600}.report-description-preview{white-space:pre-wrap;scrollbar-width:none;-ms-overflow-style:none;max-height:118px;padding-right:6px;font-weight:400;display:block;overflow-y:auto}.report-description-preview::-webkit-scrollbar{width:0;height:0}.report-detail-value.status-pending{color:var(--status-pending)}.report-detail-value.status-inprogress,.report-detail-value.status-resolved,.report-detail-value.status-rejected{color:var(--text-dark)}.report-image-container{box-shadow:var(--shadow-md);border:1px solid var(--border);border-radius:16px;overflow:hidden}.report-image-button{cursor:zoom-in;background:0 0;width:100%;padding:0;display:block}.report-image-button:hover .report-image{transform:scale(1.02)}.report-image{object-fit:cover;width:100%;height:250px;transition:transform .18s;display:block}.report-detail-panel,.report-media-panel,.report-action-form,.report-timeline-section{background:#f8fafc;border:1px solid #e8ecf1;border-radius:16px}.report-detail-panel,.report-media-panel,.report-action-form{padding:16px}.report-panel-title{color:#1e293b;margin-bottom:14px;font-size:14px;font-weight:900}.report-edit-controls{grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px;display:grid}.report-form-field{min-width:0}.report-form-field .form-label{color:#334155;margin-bottom:8px;font-size:13px;display:block}.report-timeline-section{margin:4px 0 20px;padding:16px}.report-timeline-section h3{color:var(--text-dark);margin:0 0 14px;font-size:16px;font-weight:800}.report-timeline-list{gap:10px;max-height:190px;padding-right:4px;display:grid;overflow-y:auto}.report-timeline-item{background:#fff;border:1px solid #e8ecf1;border-radius:12px;gap:12px;padding:12px;display:flex}.report-timeline-dot{background:#64748b;border-radius:999px;flex-shrink:0;width:12px;height:12px;margin-top:5px}.report-timeline-dot.pending{background:#ef4444}.report-timeline-dot.inprogress{background:#2563eb}.report-timeline-dot.resolved{background:#10b981}.report-timeline-dot.rejected{background:#8b5cf6}.report-timeline-content{min-width:0}.report-timeline-title{color:var(--text-dark);font-size:14px;font-weight:800}.report-timeline-date{color:var(--text-muted);margin-top:2px;font-size:12px;font-weight:600}.report-timeline-remarks{color:#475569;margin-top:8px;font-size:13px;line-height:1.45}.report-timeline-empty{color:var(--text-muted);text-align:center;background:#fff;border-radius:12px;padding:18px;font-size:13px;font-weight:600}@media (width<=480px){.report-edit-controls{grid-template-columns:1fr}}.remarks-input-box{width:100%;height:80px;font-size:14px;font-family:var(--font-family);resize:none;border:1.5px solid #d1d5db;border-radius:10px;outline:none;padding:12px;transition:border-color .2s}.remarks-input-box:focus{border-color:#9ca3af}.remarks-header-row{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.btn-show-remarks{color:#2563eb;cursor:pointer;white-space:nowrap;background:0 0;border:none;font-size:12px;font-weight:800}.btn-show-remarks:hover{text-decoration:underline}.btn-save-remark{color:#fff;cursor:pointer;background:#1e293b;border:none;border-radius:9px;min-height:38px;margin-top:10px;padding:0 16px;font-size:13px;font-weight:800}.btn-save-remark:disabled{cursor:not-allowed;color:#64748b;background:#cbd5e1}.remarks-popup-overlay{z-index:70;background:#0f172a6b;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.remarks-popup-card{width:min(560px,100%);max-height:min(680px,100vh - 48px);box-shadow:var(--shadow-lg);background:#fff;border-radius:20px;flex-direction:column;display:flex;overflow:hidden}.remarks-popup-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:16px;padding:22px 24px 16px;display:flex}.remarks-popup-header h3{color:var(--text-dark);margin:0 0 4px;font-size:18px;font-weight:800}.remarks-popup-header p{color:var(--text-muted);margin:0;font-size:13px;font-weight:700}.remarks-popup-close{color:#334155;cursor:pointer;background:#f1f5f9;border:none;border-radius:999px;place-items:center;width:34px;height:34px;display:grid}.remarks-popup-list{gap:12px;padding:18px 24px 24px;display:grid;overflow-y:auto}.remarks-popup-item{background:#f8fafc;border:1px solid #e8ecf1;border-radius:14px;gap:12px;padding:14px;display:flex}.remarks-popup-number{color:#fff;background:#2196f3;border-radius:999px;flex-shrink:0;place-items:center;width:28px;height:28px;font-size:13px;font-weight:900;display:grid}.remarks-popup-body{flex:1;min-width:0}.remarks-popup-meta{color:#64748b;justify-content:space-between;gap:12px;font-size:12px;font-weight:700;display:flex}.remarks-popup-body p{color:#1e293b;white-space:pre-wrap;margin:8px 0 0;font-size:14px;line-height:1.45}.remarks-popup-empty{color:var(--text-muted);text-align:center;background:#f8fafc;border-radius:14px;margin:24px;padding:28px;font-size:14px;font-weight:700}.image-popup-overlay{z-index:75;background:#0f172a94;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.image-popup-card{width:min(920px,100%);height:min(680px,100vh - 48px);box-shadow:var(--shadow-lg);background:#fff;border-radius:20px;flex-direction:column;display:flex;overflow:hidden}.image-popup-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 22px 14px;display:flex}.image-popup-header h3{color:var(--text-dark);margin:0 0 4px;font-size:18px;font-weight:800}.image-popup-header p{color:var(--text-muted);margin:0;font-size:13px;font-weight:700}.image-popup-close{color:#334155;cursor:pointer;background:#f1f5f9;border:none;border-radius:999px;flex-shrink:0;place-items:center;width:34px;height:34px;display:grid}.image-popup-body{background:#0f172a;flex:1;justify-content:center;align-items:center;min-height:0;padding:18px;display:flex}.image-popup-img{object-fit:contain;border-radius:12px;max-width:100%;max-height:100%}.status-select-box{cursor:pointer;width:100%;min-height:46px;color:var(--text-dark);background-color:#fff;border:1.5px solid #d1d5db;border-radius:10px;outline:none;padding:0 12px;font-size:14px;font-weight:500;transition:border-color .2s}.status-select-box:focus{border-color:#9ca3af}.back-link{color:#000;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;margin-bottom:18px;padding:0;font-size:16px;font-weight:700;transition:opacity .15s;display:inline-flex}.back-link:hover{opacity:.7;text-decoration:underline}.report-modal-content .notif-btn-row{justify-content:flex-end;gap:16px;margin-top:18px;display:flex}.report-modal-actions{justify-content:flex-end!important}.report-modal-content .btn-cancel-notif{color:#1e293b;cursor:pointer;background-color:#fff;border:1px solid #cbd5e1;border-radius:10px;min-width:132px;padding:12px 28px;font-size:15px;font-weight:600;transition:all .2s;box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -1px #00000008}.report-modal-content .btn-cancel-notif:hover{background-color:#f8fafc;border-color:#94a3b8}.report-modal-content .btn-send-notif{color:#fff;cursor:pointer;background-color:#2196f3;border:none;border-radius:10px;min-width:152px;padding:12px 28px;font-size:15px;font-weight:600;transition:all .2s;box-shadow:0 4px 12px #2196f340}.report-modal-content .btn-send-notif:hover{background-color:#1976d2}.report-modal-content .btn-remove-report{color:#fff;cursor:pointer;background-color:#dc2626;border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-width:166px;margin-right:auto;padding:12px 22px;font-size:15px;font-weight:700;transition:all .2s;display:inline-flex;box-shadow:0 4px 12px #dc262638}.report-modal-content .btn-remove-report:hover{background-color:#b91c1c}.map-page-wrapper{flex-direction:column;gap:20px;height:100%;display:flex}.map-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.map-page-title{color:var(--text-dark);margin:0;font-size:22px;font-weight:700}.map-page-sub{color:var(--text-muted);margin:0;font-size:13px}.map-legend{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.map-legend-item{color:#334155;background:#fff;border:1px solid #e2e8f0;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:12px;font-weight:700;display:inline-flex}.map-legend-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.map-leaflet-card{box-shadow:var(--shadow-lg);border:1px solid var(--border);border-radius:20px;flex:1;min-height:520px;overflow:hidden}.map-leaflet-container{width:100%;height:100%;min-height:520px}.map-municipality-label{color:#1e3a5f;white-space:nowrap;letter-spacing:.5px;pointer-events:none;background:#ffffffd9;border-radius:20px;padding:4px 10px;font-size:12px;font-weight:700;box-shadow:0 2px 8px #00000026}.map-custom-icon{background:0 0!important;border:none!important}.lf-popup-wrapper .leaflet-popup-content-wrapper{border:1px solid #00000014;border-radius:14px;padding:0;overflow:hidden;box-shadow:0 8px 32px #0000002e}.lf-popup-wrapper .leaflet-popup-content{margin:0;width:auto!important}.lf-popup-wrapper .leaflet-popup-tip{box-shadow:none}.lf-popup{min-width:200px;padding:14px 16px}.lf-popup-title{color:#1e293b;margin-bottom:3px;font-size:14px;font-weight:700}.lf-popup-loc{color:#64748b;margin-bottom:10px;font-size:12px;line-height:1.4}.lf-popup-meta{align-items:center;gap:8px;margin-bottom:10px;display:flex}.lf-popup-date{color:#94a3b8;flex:1;font-size:11px;font-weight:500}.lf-status{text-transform:capitalize;border-radius:20px;padding:2px 8px;font-size:10px;font-weight:700}.lf-status-resolved{color:#065f46;background:#d1fae5}.lf-status-pending{color:#991b1b;background:#fee2e2}.lf-status-inprogress{color:#1d4ed8;background:#dbeafe}.lf-status-rejected{color:#6d28d9;background:#ede9fe}.lf-popup-btn{color:#fff;cursor:pointer;text-align:center;background:#3b82f6;border:none;border-radius:8px;width:100%;padding:7px 0;font-size:12px;font-weight:600;transition:background .18s;display:block}.lf-popup-btn:hover{background:#2563eb}.leaflet-control-attribution{opacity:.7;font-size:10px!important}.user-management-title{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px;display:flex}.user-management-title h1{margin:0 0 6px}.user-management-title p{color:var(--text-muted);margin:0;font-size:14px}.user-management-loading{color:var(--text-muted);margin-bottom:16px;font-size:14px;font-weight:600}@media (width<=900px){.user-management-title{flex-direction:column}}.btn-delete{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:6px;transition:all .15s}.btn-delete:hover{color:var(--status-rejected);background-color:var(--status-rejected-bg)}.status-toggle-btn{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-weight:600}.status-toggle-btn.active{color:#10b981}.status-toggle-btn.inactive{color:#ef4444}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background-color:#0f172a66;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}.modal-content{width:100%;max-width:480px;box-shadow:var(--shadow-lg);background-color:#fff;border-radius:24px;padding:32px;animation:.2s ease-out fadeIn}.modal-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:4px;display:flex}.modal-close:hover{background-color:#f1f5f9}.modal-close:disabled,.btn-secondary:disabled,.btn-primary:disabled{cursor:not-allowed;opacity:.65}.form-group{margin-bottom:20px}.form-label{color:var(--text-dark);margin-bottom:8px;font-size:14px;font-weight:600;display:block}.form-input{border:1px solid var(--border);border-radius:10px;outline:none;width:100%;padding:12px 16px;font-size:15px}.form-input:focus{border-color:var(--primary)}.form-input:disabled{color:var(--text-muted);cursor:not-allowed;background-color:#f8fafc}.modal-actions{justify-content:flex-end;gap:12px;margin-top:28px;display:flex}.btn-secondary{color:var(--text-dark);cursor:pointer;background-color:#f1f5f9;border:none;border-radius:10px;padding:12px 20px;font-size:14px;font-weight:600}.btn-secondary:hover{background-color:#e2e8f0}.btn-primary{color:#fff;cursor:pointer;background-color:#2196f3;border:none;border-radius:10px;padding:12px 20px;font-size:14px;font-weight:600;transition:all .2s;box-shadow:0 4px 12px #2196f340}.btn-primary:hover{background-color:#1976d2}.user-cell{align-items:center;gap:12px;display:flex}.user-avatar-sm{color:#0369a1;text-transform:uppercase;background:#e0f2fe;border-radius:50%;justify-content:center;align-items:center;width:34px;min-width:34px;height:34px;font-size:13px;font-weight:800;display:inline-flex;overflow:hidden}.user-avatar-sm img{object-fit:cover;width:100%;height:100%;display:block}.role-badge{color:#334155;text-transform:capitalize;background:#f1f5f9;border-radius:999px;justify-content:center;align-items:center;min-width:72px;padding:5px 9px;font-size:11px;font-weight:700;display:inline-flex}.role-badge.admin,.role-badge.super_admin{color:#1d4ed8;background:#dbeafe}.status-toggle-btn{white-space:nowrap}.send-notif-form-box{background-color:#f5f6f8;border:1px solid #e2e8f0;border-radius:16px;margin-bottom:24px;padding:32px}.send-notif-input-wrapper{margin-bottom:24px;position:relative}.send-notif-label{color:var(--text-dark);margin-bottom:10px;font-size:16px;font-weight:600;display:block}.to-list-container{background-color:#fff;border:1px solid #e2e8f0;border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;min-height:52px;padding:8px 12px;display:flex;box-shadow:inset 0 1px 2px #00000005}.to-tag{color:#0369a1;background-color:#e0f2fe;border-radius:8px;align-items:center;gap:6px;padding:4px 10px;font-size:14px;font-weight:600;display:flex}.to-tag-remove{cursor:pointer;color:#0284c7;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.to-tag-remove:hover{color:#0369a1}.message-textarea{width:100%;min-height:140px;color:var(--text-dark);resize:vertical;font-size:15px;font-family:var(--font-family);background-color:#fff;border:1px solid #e2e8f0;border-radius:20px;outline:none;padding:16px;box-shadow:inset 0 1px 2px #00000005}.message-textarea:focus{border-color:var(--primary)}.notif-btn-row{justify-content:center;gap:16px;margin-top:24px;display:flex}.btn-cancel-notif{color:#1e293b;cursor:pointer;background-color:#fff;border:1px solid #cbd5e1;border-radius:10px;padding:12px 36px;font-size:15px;font-weight:600;transition:all .2s;box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -1px #00000008}.btn-cancel-notif:hover{background-color:#f8fafc;border-color:#94a3b8}.btn-send-notif{color:#fff;cursor:pointer;background-color:#2196f3;border:none;border-radius:10px;padding:12px 36px;font-size:15px;font-weight:600;transition:all .2s;box-shadow:0 4px 12px #2196f340}.btn-send-notif:hover{background-color:#1976d2}.btn-send-notif:active{transform:translateY(1px)}.search-suggestions{box-shadow:var(--shadow-lg);z-index:10;background-color:#fff;border:1px solid #cbd5e1;border-radius:10px;max-height:180px;margin-top:4px;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.suggestion-item{cursor:pointer;color:var(--text-dark);border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:12px 16px;font-size:14px;display:flex}.suggestion-item:last-child{border-bottom:none}.suggestion-item:hover{color:#0369a1;background-color:#f0f9ff}.suggestion-name{font-weight:600}.suggestion-email{color:var(--text-muted);font-size:12px}
