body{margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.login-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.login-box{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-width:450px;padding:40px;width:100%}.login-header{margin-bottom:30px;text-align:center}.login-header h1{color:#1e40af;font-size:1.8rem;margin-bottom:10px}.login-header p{color:#64748b;font-size:1rem}.login-form{gap:20px}.form-group,.login-form{display:flex;flex-direction:column}.form-group{gap:8px}.form-group label{color:#1e293b;font-size:.95rem;font-weight:600}.form-group input{border:2px solid #e2e8f0;border-radius:8px;font-size:16px;padding:14px;transition:all .3s}.form-group input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.form-group input:disabled{background-color:#f1f5f9;cursor:not-allowed}.error-message{background-color:#fee2e2;border:1px solid #ef4444;border-radius:8px;color:#991b1b;font-size:.9rem;padding:12px}.login-button{background:linear-gradient(135deg,#3b82f6,#1e40af);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1.05rem;font-weight:600;padding:16px;transition:all .3s}.login-button:hover:not(:disabled){box-shadow:0 4px 12px #3b82f666;transform:translateY(-2px)}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{cursor:not-allowed;opacity:.6}.login-footer{border-top:1px solid #e2e8f0;margin-top:25px;padding-top:20px;text-align:center}.login-footer p{color:#94a3b8;font-size:.85rem;margin:0}@media (max-width:480px){.login-container{padding:15px}.login-box{padding:30px 25px}.login-header h1{font-size:1.5rem}.form-group input{padding:12px}.login-button{padding:14px}}.app-header{background:linear-gradient(135deg,#1e40af,#3b82f6);box-shadow:0 2px 8px #0000001a;color:#fff;flex-wrap:wrap;gap:10px;justify-content:space-between;padding:15px 20px;position:relative;z-index:50}.app-header,.header-left{align-items:center;display:flex}.header-left{gap:12px}.header-left h1{font-size:1.3rem;margin:0;white-space:nowrap}.user-badge{background:#fff3;border-radius:20px;font-size:.85rem;font-weight:500;padding:4px 12px}.header-center{display:flex;flex:1 1;justify-content:center}.session-info{background:#ffffff26;border-radius:8px;cursor:pointer;display:flex;gap:20px;padding:8px 20px;transition:background .2s}.session-info:hover{background:#ffffff40}.info-item{align-items:center}.info-label{font-size:.7rem;margin-bottom:2px;opacity:.9}.header-right{display:flex;gap:10px}.header-button{background:#fff3;border:1px solid #ffffff4d;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:500;padding:8px 16px;transition:all .2s;white-space:nowrap}.header-button:hover{background:#ffffff4d;transform:translateY(-1px)}.logout-button{background:#ef4444cc;border-color:#ef4444e6}.logout-button:hover{background:#ef4444}.header-compact{display:none}.compact-info{background:#ffffff26;border-radius:6px;cursor:pointer;display:flex;font-size:.75rem;gap:10px;padding:6px 10px}.compact-time,.compact-usage{white-space:nowrap}.header-mobile-buttons{display:none;gap:8px}.mobile-icon-button{align-items:center;background:#fff3;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:1.3rem;height:44px;justify-content:center;transition:background .2s;width:44px}.mobile-icon-button:active,.mobile-icon-button:hover{background:#ffffff4d}.mobile-icon-button.logout{background:#ef4444cc}.usage-details-popup{animation:fadeIn .2s ease;background:#fff;border-radius:12px;box-shadow:0 4px 20px #0003;left:50%;margin-top:10px;min-width:280px;position:absolute;top:100%;transform:translateX(-50%);z-index:100}.usage-details-content{color:#1f2937;padding:20px;position:relative}.close-usage{background:none;border:none;color:#9ca3af;cursor:pointer;font-size:1.5rem;position:absolute;right:15px;top:10px}.usage-details-content h4{color:#1e40af;font-size:1.1rem;margin:0 0 15px}.usage-section{border-bottom:1px solid #e5e7eb;margin-bottom:15px;padding-bottom:15px}.usage-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.usage-section h5{color:#6b7280;font-size:.85rem;letter-spacing:.5px;margin:0 0 8px;text-transform:uppercase}.usage-bar-container{background:#e5e7eb;border-radius:4px;height:8px;margin-bottom:8px;overflow:hidden}.usage-bar{border-radius:4px;height:100%;transition:width .3s ease}.usage-row{display:flex;font-size:.9rem;justify-content:space-between}.usage-row.small{color:#6b7280;font-size:.8rem;margin-top:5px}.desktop-only{display:flex}.mobile-only{display:none}@media (max-width:900px){.app-header{padding:12px 15px}.header-left h1{font-size:1.1rem}.session-info{gap:15px;padding:6px 15px}.header-button{font-size:.85rem;padding:6px 12px}}@media (max-width:768px){.app-header{flex-wrap:nowrap;padding:10px 12px}.header-left{flex:0 0 auto;min-width:0}.header-left h1{font-size:.95rem;overflow:hidden;text-overflow:ellipsis}.user-badge{display:none}.desktop-only{display:none!important}.mobile-only{display:flex!important}.header-compact{flex:1 1;justify-content:center;min-width:0}.compact-info{flex-wrap:wrap;gap:6px;justify-content:center}.header-mobile-buttons{display:flex}.usage-details-popup{left:10px;min-width:auto;right:10px;transform:none}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}}@media (max-width:480px){.app-header{padding:8px 10px}.header-left h1{font-size:.85rem}.compact-info{font-size:.7rem;gap:5px;padding:4px 8px}.mobile-icon-button{font-size:1.2rem;height:40px;width:40px}}@media (max-width:360px){.compact-info{align-items:center;flex-direction:column;gap:2px}}@media (max-width:768px) and (orientation:landscape){.app-header{padding:8px 15px}.header-compact{display:flex!important}.compact-info{flex-direction:row}}.panel-backdrop{animation:fadeIn .2s ease;background:#0006;bottom:0;left:0;position:fixed;right:0;top:0;z-index:90}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.inspection-panel{background:#fff;border-radius:16px 16px 0 0;box-shadow:0 -4px 20px #00000026;overflow:hidden;z-index:100}.inspection-panel.mobile{animation:slideUp .3s ease;bottom:0;left:0;max-height:70vh;position:fixed;right:0}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.inspection-panel.desktop{animation:fadeSlideIn .2s ease;border-radius:12px;bottom:20px;left:20px;max-height:calc(100vh - 200px);position:absolute;width:350px}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.drag-handle{background:#d1d5db;border-radius:2px;height:4px;margin:10px auto;width:40px}.close-panel{background:none;border:none;color:#9ca3af;cursor:pointer;font-size:1.8rem;line-height:1;padding:0;position:absolute;right:15px;top:10px;z-index:10}.close-panel:hover{color:#6b7280}.panel-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:15px 50px 15px 20px}.panel-header h3{color:#1e40af;font-size:1.1rem;font-weight:600;margin:0}.status-badge{border-radius:20px;color:#fff;font-size:.75rem;font-weight:600;letter-spacing:.5px;padding:4px 12px;text-transform:uppercase}.panel-content{max-height:calc(70vh - 180px);overflow-y:auto;padding:15px 20px}.info-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:1fr 1fr}.info-item{display:flex;flex-direction:column;gap:4px}.info-item.full-width{grid-column:1/-1}.info-label{color:#6b7280;font-size:.75rem;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.info-value{color:#1f2937;font-size:.95rem;font-weight:600}.info-value.coordinates{color:#4b5563;font-family:SF Mono,Monaco,Inconsolata,Fira Mono,monospace;font-size:.85rem}.map-id-container{align-items:center;display:flex;gap:8px}.info-value.map-id{border-radius:6px;color:#374151;font-family:SF Mono,Monaco,Inconsolata,Fira Mono,monospace;font-size:.8rem}.copy-button,.info-value.map-id{background:#f3f4f6;padding:6px 10px}.copy-button{border:none;border-radius:6px;cursor:pointer;font-size:1rem;transition:background .2s}.copy-button:hover{background:#e5e7eb}.panel-actions{background:#f9fafb;border-top:1px solid #e5e7eb;display:flex;gap:10px;padding:15px 20px}.action-button{align-items:center;border:none;border-radius:10px;cursor:pointer;display:flex;flex:1 1;font-size:1rem;font-weight:600;gap:8px;justify-content:center;padding:14px 16px;transition:all .2s}.directions-button{background:#10b981;color:#fff}.directions-button:hover{background:#059669}.directions-button:active{transform:scale(.98)}.edit-button{background:#3b82f6;color:#fff}.edit-button:hover{background:#2563eb}.edit-button:active{transform:scale(.98)}.mobile-hint{background:#f0f9ff;border-top:1px solid #e0f2fe;color:#6b7280;font-size:.8rem;padding:10px 20px 15px;text-align:center}@media (max-width:768px){.inspection-panel.mobile{border-radius:20px 20px 0 0}.panel-header{padding:12px 20px}.panel-header h3{font-size:1rem}.panel-content{padding:12px 20px}.info-grid{gap:12px}.panel-actions{padding:12px 20px 15px}.action-button{font-size:1rem;padding:16px}}@supports (padding-bottom:env(safe-area-inset-bottom)){.mobile-hint,.panel-actions{padding-bottom:calc(15px + env(safe-area-inset-bottom))}}@media (max-width:380px){.panel-header h3{font-size:.95rem}.status-badge{padding:3px 10px}.info-label,.status-badge{font-size:.7rem}.info-value{font-size:.9rem}.action-button{font-size:.95rem;padding:14px}}@media (max-width:768px) and (orientation:landscape){.inspection-panel.mobile{max-height:85vh}.panel-content{max-height:calc(85vh - 160px)}.info-grid{grid-template-columns:repeat(3,1fr)}.info-item.full-width{grid-column:span 3}}.stats-overlay{z-index:1000}.stats-panel{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:700px;overflow-y:auto;padding:30px;width:100%}.stats-header{align-items:center;border-bottom:2px solid #e2e8f0;display:flex;justify-content:space-between;margin-bottom:25px;padding-bottom:15px}.stats-header h2{color:#1e40af;font-size:1.5rem;margin:0}.close-button{align-items:center;background:none;border:none;border-radius:50%;color:#94a3b8;cursor:pointer;display:flex;font-size:32px;height:40px;justify-content:center;transition:all .2s;width:40px}.close-button:hover{background-color:#f1f5f9;color:#64748b}.stats-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:30px}.stat-card{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:2px solid #e2e8f0;border-radius:12px;padding:20px;text-align:center}.stat-card.total{background:linear-gradient(135deg,#dbeafe,#bfdbfe);border-color:#3b82f6}.stat-card.pending{background:linear-gradient(135deg,#fef3c7,#fde68a);border-color:#f59e0b}.stat-card.clicked{background:linear-gradient(135deg,#dbeafe,#93c5fd);border-color:#3b82f6}.stat-card.completed{background:linear-gradient(135deg,#d1fae5,#a7f3d0);border-color:#10b981}.stat-number{color:#1e293b;font-size:2.5rem;font-weight:700;margin-bottom:5px}.stat-label{color:#64748b;font-size:.9rem;font-weight:600}.progress-section{margin-bottom:30px}.progress-section h3{color:#1e40af;font-size:1.1rem;margin-bottom:15px}.progress-bar{background:#e2e8f0;border-radius:20px;height:40px;overflow:hidden;position:relative}.progress-fill{align-items:center;background:linear-gradient(90deg,#3b82f6,#1e40af);display:flex;height:100%;justify-content:center;min-width:50px;transition:width .5s ease}.progress-fill span{color:#fff;font-size:.9rem;font-weight:600}.breakdown-section{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.breakdown-column h3{color:#1e40af;font-size:1rem;margin-bottom:12px}.breakdown-item{background:#f8fafc;border-radius:6px;display:flex;justify-content:space-between;margin-bottom:8px;padding:10px}.breakdown-item span{color:#64748b}.breakdown-item strong{color:#1e293b;font-size:1.1rem}@media (max-width:768px){.stats-panel{padding:20px}.stats-grid{grid-template-columns:repeat(2,1fr)}.stat-number{font-size:2rem}.breakdown-section{grid-template-columns:1fr}}.map-page{overflow:hidden}.loading-container,.map-page{display:flex;flex-direction:column;height:100vh}.loading-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;justify-content:center}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:50px;width:50px}@keyframes spin{to{transform:rotate(1turn)}}.map-controls{align-items:center;background:#fff;border-bottom:1px solid #e2e8f0;display:flex;flex-wrap:wrap;gap:15px;padding:15px}.search-box{flex:1 1;min-width:200px;position:relative}.search-box input{border:2px solid #e2e8f0;border-radius:8px;font-size:1rem;padding:10px 35px 10px 15px;transition:border-color .2s;width:100%}.search-box input:focus{border-color:#3b82f6;outline:none}.clear-search{background:none;border:none;color:#94a3b8;cursor:pointer;font-size:1.5rem;line-height:1;padding:0;position:absolute;right:10px;top:50%;transform:translateY(-50%)}.clear-search:hover{color:#64748b}.inspection-count{color:#3b82f6;font-weight:600;white-space:nowrap}.polling-indicator{animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.error-banner{background-color:#fef2f2;border:1px solid #ef4444;border-radius:8px;color:#b91c1c;margin:10px;padding:12px;text-align:center}.map-container{flex:1 1;min-height:0;position:relative}.custom-marker{border-radius:50%;cursor:pointer;height:24px;transition:transform .2s;width:24px}.custom-marker:hover{transform:scale(1.2)}.legend{background:#fff;border-radius:8px;bottom:20px;box-shadow:0 2px 10px #00000026;overflow:hidden;position:absolute;right:10px;transition:all .3s ease;z-index:10}.legend-header{align-items:center;background:#f8fafc;border-bottom:1px solid #e2e8f0;cursor:pointer;display:flex;justify-content:space-between;padding:10px 15px}.legend-header h4{color:#1e293b;font-size:.9rem;margin:0}.legend-toggle{color:#64748b;font-size:.7rem}.legend-content{padding:10px 15px}.legend.collapsed .legend-content{display:none}.legend.collapsed .legend-header{border-bottom:none}.legend-item{align-items:center;display:flex;font-size:.85rem;gap:10px;margin-bottom:8px}.legend-item:last-child{margin-bottom:0}.legend-marker{border-radius:50%;flex-shrink:0;height:14px;width:14px}.stats-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:100}@media (max-width:768px){.map-controls{gap:10px;padding:10px}.search-box{min-width:0;min-width:auto;width:100%}.search-box input{font-size:16px;padding:12px 35px 12px 12px}.inspection-count{font-size:.9rem;text-align:center;width:100%}.custom-marker{height:32px;width:32px}.legend{bottom:10px;left:10px;max-width:none;right:10px}.legend.collapsed{left:auto;width:auto}.legend-content,.legend-header{padding:12px 15px}.legend-content{display:flex;flex-wrap:wrap;gap:15px}.legend-item{flex:1 1 45%;margin-bottom:0}.mapboxgl-ctrl-top-right{right:10px;top:10px}}@media (max-width:480px){.map-controls{padding:8px}.search-box input{padding:10px 30px 10px 10px}.inspection-count{font-size:.85rem}.legend-item{font-size:.8rem}.legend-marker{height:12px;width:12px}}@media (max-width:768px) and (orientation:landscape){.map-controls{flex-direction:row;flex-wrap:nowrap}.search-box{flex:1 1}.inspection-count{width:auto}.legend{bottom:10px;left:auto;max-width:250px;right:10px}}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.App{min-height:100vh}.mapboxgl-popup-content{border-radius:8px;box-shadow:0 4px 12px #00000026;padding:15px}.mapboxgl-popup-close-button{color:#64748b;font-size:20px;padding:5px 10px}.mapboxgl-popup-close-button:hover{background-color:#f1f5f9;color:#1e293b}
/*# sourceMappingURL=main.50a61c76.css.map*/