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;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:2000}.modal-content{animation:slideUp .3s ease;background:#fff;border-radius:16px;max-height:90vh;max-width:500px;overflow-y:auto;padding:32px;width:90%}.modal-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.modal-header h2{color:#1a1a2e;font-size:22px;margin:0}.modal-close{background:none;border:none;border-radius:8px;color:#888;cursor:pointer;font-size:24px;padding:4px 8px;transition:all .2s}.modal-close:hover{background:#f0f2f5;color:#333}.form-group{margin-bottom:20px}.form-group label{color:#333;margin-bottom:6px}.form-group input,.form-group select,.form-group textarea{border:2px solid #e0e0e0}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#4285f4}.form-group textarea{min-height:80px;resize:vertical}.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.btn-cancel,.btn-save{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;padding:10px 24px;transition:all .2s}.btn-cancel{background:#f0f2f5;color:#333}.btn-cancel:hover{background:#e0e0e0}.btn-save{background:#4285f4;color:#fff}.btn-save:hover:not(:disabled){background:#3367d6;box-shadow:0 4px 12px #4285f44d;transform:translateY(-2px)}.btn-save:disabled{cursor:not-allowed;opacity:.6}@media (max-width:768px){.modal-content{margin:20px;max-width:100%;padding:20px}}.admin-dashboard{background:#f0f2f5;display:flex;flex-direction:column;height:100vh;width:100vw}.admin-header{align-items:center;background:#fff;box-shadow:0 2px 8px #0000001a;display:flex;justify-content:space-between;padding:16px 24px;z-index:100}.admin-header h1{color:#1a1a2e;font-size:24px;margin:0}.admin-controls{display:flex;gap:12px}.btn-add,.btn-refresh{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;padding:8px 20px;transition:all .2s}.btn-add{background:#4285f4;color:#fff}.btn-add:hover{background:#3367d6;box-shadow:0 4px 12px #4285f44d;transform:translateY(-2px)}.btn-refresh{background:#f0f0f0;color:#333}.btn-refresh:hover{background:#e0e0e0}.loading{align-items:center;color:#636e72;display:flex;font-size:18px;height:100vh;justify-content:center}.location-info-window{max-width:300px;padding:4px}.location-info-window h3{color:#1a1a2e;font-size:16px;margin:0 0 8px}.category-badge{font-size:12px;font-weight:500;margin-bottom:8px}.location-info-window p{color:#555;font-size:13px;margin:8px 0}.tags{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0}.tag{background:#f0f2f5;border-radius:12px;color:#555;font-size:11px;padding:2px 8px}.action-buttons{display:flex;gap:8px;margin-top:12px}.btn-delete{background:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;font-weight:500;padding:4px 12px}.btn-delete:hover{background:#c82333}.click-error{animation:slideUp .3s ease;background:#ffebee;border-radius:8px;bottom:80px;box-shadow:0 2px 8px #0000001a;color:#c62828;font-size:13px;left:50%;padding:8px 16px;position:absolute;transform:translateX(-50%);z-index:1000}.recenter-btn-gmaps{align-items:center;background:#fff;border:none;border-radius:50%;bottom:90px;box-shadow:0 1px 4px #0000004d;cursor:pointer;display:flex;height:40px;justify-content:center;padding:0;position:absolute;right:10px;transition:box-shadow .15s ease,transform .1s ease;width:40px;z-index:900}.recenter-btn-gmaps:hover{box-shadow:0 2px 6px #00000059}.recenter-btn-gmaps:active{transform:scale(.94)}.recenter-btn-gmaps:disabled{cursor:default}.recenter-dot{fill:#666;transition:fill .15s ease}.recenter-ticks{stroke:#666;transition:stroke .15s ease}.recenter-btn-gmaps.is-active .recenter-dot{fill:#1a73e8}.recenter-btn-gmaps.is-active .recenter-ticks{stroke:#1a73e8}.recenter-spinner{animation:recenter-spin .7s linear infinite;border:2.5px solid #dadce0;border-radius:50%;border-top-color:#1a73e8;height:18px;width:18px}@keyframes recenter-spin{to{transform:rotate(1turn)}}@media (max-width:600px){.recenter-btn-gmaps{bottom:170px}}.image-lightbox-overlay{align-items:center;animation:lightboxFadeIn .15s ease-out;background:#000000d9;display:flex;inset:0;justify-content:center;position:fixed;z-index:3000}.image-lightbox-img{animation:lightboxZoomIn .2s ease-out;border-radius:8px;box-shadow:0 10px 40px #00000080;max-height:85vh;max-width:90vw}.image-lightbox-close{background:#ffffff26;border:none;border-radius:50%;color:#fff;cursor:pointer;font-size:20px;height:40px;position:absolute;right:20px;top:20px;width:40px}.image-lightbox-caption{background:#0006;border-radius:20px;bottom:24px;color:#fff;font-size:15px;padding:6px 14px;position:absolute}@keyframes lightboxFadeIn{0%{opacity:0}to{opacity:1}}@keyframes lightboxZoomIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.category-filter{height:100%}.category-filter h3{color:#1a1a2e;font-size:16px;margin:0 0 16px}.filter-list{display:flex;flex-direction:column;gap:4px}.filter-item{align-items:center;background:#0000;border-left:4px solid #0000;border-radius:8px;cursor:pointer;display:flex;padding:10px 12px;transition:all .2s}.filter-item:hover{background:#f8f9fa}.filter-item.active{background:#f0f4ff}.filter-icon{font-size:18px;margin-right:12px}.filter-name{color:#2d3436;flex:1 1;font-size:14px;font-weight:500}.filter-count{color:#999;font-size:12px;margin-right:8px}.filter-dot{border:2px solid #0000001a;border-radius:50%;height:12px;width:12px}.image-gallery{margin-top:15px}.image-gallery-loading{align-items:center;color:#718096;display:flex;flex-direction:column;padding:20px}.loading-spinner{animation:spin 1s linear infinite;border:3px solid #e2e8f0;border-radius:50%;border-top-color:#667eea;height:32px;margin-bottom:10px;width:32px}.image-gallery-error{background:#fed7d7;border-radius:8px;color:#c53030;padding:10px 15px;text-align:center}.image-gallery-empty{color:#a0aec0;padding:30px 20px;text-align:center}.empty-icon{display:block;font-size:48px;margin-bottom:10px}.image-gallery-empty p{color:#4a5568;font-size:16px;margin:0}.image-gallery-empty small{color:#a0aec0}.gallery-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.gallery-item{aspect-ratio:1;background:#f7fafc;border-radius:10px;cursor:pointer;overflow:hidden;position:relative;transition:transform .2s,box-shadow .2s}.gallery-item:hover{box-shadow:0 4px 15px #0003;transform:scale(1.03);z-index:2}.gallery-item img{height:100%;object-fit:cover;width:100%}.gallery-item-overlay{align-items:center;background:#0006;bottom:0;display:flex;justify-content:center;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s}.gallery-item:hover .gallery-item-overlay{opacity:1}.image-actions{display:flex;gap:8px}.action-btn{align-items:center;background:#ffffffe6;border:none;border-radius:50%;cursor:pointer;display:flex;font-size:16px;height:36px;justify-content:center;transition:all .2s;width:36px}.action-btn:hover{background:#fff;box-shadow:0 2px 8px #0003;transform:scale(1.1)}.action-btn.delete-btn:hover{background:#fed7d7;color:#c53030}.image-badge{background:#000000b3;border-radius:4px;color:#fff;font-size:10px;font-weight:600;padding:2px 8px;position:absolute;right:8px;top:8px}.image-detail-overlay{align-items:center;animation:fadeIn .3s ease;background:#000000d9;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:10001}.image-detail-modal{animation:slideUp .3s ease;background:#fff;border-radius:16px;max-height:90vh;max-width:900px;overflow-y:auto;position:relative;width:95%}.detail-close-btn{background:#0009;border:none;border-radius:50%;color:#fff;cursor:pointer;font-size:18px;height:36px;position:absolute;right:12px;top:12px;transition:background .2s;width:36px;z-index:10}.detail-close-btn:hover{background:#000c}.detail-content{display:flex;flex-direction:column;padding:20px}.detail-content img{background:#f7fafc;border-radius:10px;max-height:60vh;object-fit:contain;width:100%}.detail-info{padding:20px 0 0}.detail-info h3{color:#2d3748;margin:0 0 15px}.detail-metadata{grid-gap:8px 20px;display:grid;gap:8px 20px;grid-template-columns:1fr 1fr;margin-bottom:15px}.detail-metadata p{color:#4a5568;font-size:14px;margin:5px 0}.detail-metadata strong{color:#2d3748}.detail-tags{align-items:center;display:flex;flex-wrap:wrap;gap:6px;grid-column:1/-1;margin-top:5px}.detail-tags .tag{background:#ebf4ff;border-radius:12px;color:#667eea;font-size:12px;padding:2px 10px}.detail-actions{display:flex;gap:10px;margin-top:10px}.detail-actions button{border:none;border-radius:8px;cursor:pointer;font-weight:600;padding:10px 20px;transition:all .3s}.detail-actions button:first-child{background:#667eea;color:#fff}.detail-actions button:first-child:hover{background:#5a67d8;transform:translateY(-2px)}.detail-actions .delete-btn{background:#fed7d7;color:#c53030}.detail-actions .delete-btn:hover{background:#feb2b2}.location-images-section{border-top:1px solid #e2e8f0;margin-top:20px;padding-top:20px}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:15px}.section-header h4{color:#2d3748;margin:0}.upload-image-btn{background:#667eea;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:500;padding:6px 16px;transition:all .3s}.upload-image-btn:hover{background:#5a67d8;box-shadow:0 2px 8px #667eea4d;transform:translateY(-1px)}@media (max-width:640px){.gallery-grid{gap:8px;grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.detail-metadata{grid-template-columns:1fr}.detail-actions{flex-direction:column}.detail-actions button{width:100%}}.image-upload-overlay{align-items:center;animation:fadeIn .3s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}.image-upload-modal{animation:slideUp .3s ease;background:#fff;border-radius:20px;max-height:90vh;max-width:600px;overflow-y:auto;padding:30px;width:90%}.image-upload-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.image-upload-header h2{color:#2d3748;margin:0}.file-drop-zone{border:2px dashed #cbd5e0;border-radius:12px;cursor:pointer;margin-bottom:20px;padding:40px 20px;text-align:center;transition:all .3s}.file-drop-zone:hover{background:#f7fafc;border-color:#667eea}.drop-zone-content .upload-icon{display:block;font-size:48px;margin-bottom:10px}.drop-zone-content p{color:#4a5568;font-weight:500;margin:0}.drop-zone-content small{color:#a0aec0;display:block;margin-top:5px}.preview-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));margin-bottom:20px}.preview-item{aspect-ratio:1;background:#f7fafc;border-radius:8px;overflow:hidden;position:relative}.preview-item img{height:100%;object-fit:cover;width:100%}.remove-image-btn{align-items:center;background:#e53e3ee6;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:12px;height:24px;justify-content:center;position:absolute;right:4px;top:4px;transition:transform .2s;width:24px}.remove-image-btn:hover:not(:disabled){transform:scale(1.1)}.remove-image-btn:disabled{cursor:not-allowed;opacity:.5}.file-name{background:#000000b3;bottom:0;color:#fff;font-size:10px;left:0;overflow:hidden;padding:4px 8px;position:absolute;right:0;text-overflow:ellipsis;white-space:nowrap}.metadata-fields{margin-bottom:20px}.form-group{margin-bottom:15px}.form-group input[type=text],.form-group textarea{border:2px solid #e2e8f0;border-radius:8px;box-sizing:border-box;font-size:14px;padding:10px 12px;transition:border-color .2s;width:100%}.form-group input[type=text]:focus,.form-group textarea:focus{border-color:#667eea;outline:none}.upload-progress{margin:15px 0}.progress-bar{background:#e2e8f0;border-radius:4px;height:8px;overflow:hidden;width:100%}.progress-fill{background:linear-gradient(90deg,#667eea,#764ba2);border-radius:4px;height:100%;transition:width .3s ease}.progress-text{color:#4a5568;display:block;font-size:14px;margin-top:5px;text-align:center}.upload-actions{display:flex;gap:12px;justify-content:flex-end}.upload-actions button{border:none;border-radius:10px;cursor:pointer;font-size:16px;font-weight:600;padding:12px 24px;transition:all .3s}.upload-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.upload-btn:hover:not(:disabled){box-shadow:0 4px 15px #667eea66;transform:translateY(-2px)}.upload-btn:disabled{cursor:not-allowed;opacity:.6}.upload-error{background:#fed7d7;border:1px solid #feb2b2;border-radius:8px;color:#c53030;margin-bottom:15px;padding:12px 16px}@media (max-width:640px){.image-upload-modal{padding:20px}.preview-grid{gap:8px;grid-template-columns:repeat(auto-fill,minmax(80px,1fr))}.upload-actions{flex-direction:column}.upload-actions button{width:100%}}.location-details{max-width:300px;padding:4px}.details-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.details-header h3{color:#1a1a2e;font-size:16px;margin:0}.category-badge{border-radius:12px;color:#fff;display:inline-block;font-size:11px;font-weight:600;padding:4px 12px}.details-description{color:#555;font-size:13px;line-height:1.5;margin:8px 0}.details-tags{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0}.details-tags .tag{background:#f0f2f5;border-radius:12px;color:#555;font-size:11px;padding:2px 10px}.details-images{margin:12px 0}.image-grid{grid-gap:6px;display:grid;gap:6px;grid-template-columns:repeat(3,1fr)}.image-item{aspect-ratio:1;background:#f0f2f5;border-radius:8px;overflow:hidden}.image-item img{height:100%;object-fit:cover;transition:transform .3s;width:100%}.image-item img:hover{transform:scale(1.05)}.btn-show-more{background:none;border:none;border-radius:4px;color:#4285f4;cursor:pointer;font-size:12px;margin-top:4px;padding:8px;text-align:center;transition:background .2s;width:100%}.btn-show-more:hover{background:#f0f4ff}.details-meta{border-top:1px solid #f0f2f5;color:#999;display:flex;flex-direction:column;font-size:11px;gap:4px;margin-top:12px;padding-top:12px}.path-tracker{padding:16px}.path-tracker h3{color:#1a1a2e;font-size:16px;margin:0 0 16px}.tracker-stats{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr;margin-bottom:16px}.stat-item{background:#f8f9fa;border-radius:8px;padding:8px 12px;text-align:center}.stat-label{color:#999;display:block;font-size:11px;letter-spacing:.5px;text-transform:uppercase}.stat-value{color:#1a1a2e;display:block;font-size:16px;font-weight:600;margin-top:4px}.tracker-actions{display:flex;gap:8px;margin-bottom:16px}.tracker-actions button{border:none;border-radius:8px;cursor:pointer;flex:1 1;font-size:13px;font-weight:500;padding:8px 16px;transition:all .2s}.btn-start{background:#34a853;color:#fff}.btn-start:hover{background:#2d9249;box-shadow:0 4px 12px #34a8534d;transform:translateY(-2px)}.btn-stop{background:#dc3545;color:#fff}.btn-stop:hover{background:#c82333;box-shadow:0 4px 12px #dc35454d;transform:translateY(-2px)}.btn-clear{background:#f0f2f5;color:#333}.btn-clear:hover:not(:disabled){background:#e0e0e0}.btn-clear:disabled{cursor:not-allowed;opacity:.4}.tracker-path-preview{border-top:1px solid #f0f2f5;margin-top:12px;padding-top:12px}.path-mini-map{background:#f8f9fa;border-radius:8px;height:60px;overflow:hidden;position:relative;width:100%}.mini-map-dots{height:100%;position:relative;width:100%}.mini-dot{background:#4285f4;border-radius:50%;height:4px;position:absolute;transform:translate(-50%,-50%);width:4px}.location-form-overlay{align-items:center;animation:fadeIn .3s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}.location-form-modal{animation:slideUp .3s ease;background:#fff;border-radius:20px;max-height:90vh;max-width:700px;overflow-y:auto;padding:30px;width:90%}.form-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.form-header h2{color:#2d3748;margin:0}.close-btn{background:none;border:none;color:#666;cursor:pointer;font-size:24px;transition:color .2s}.close-btn:hover{color:#333}.form-error{background:#fed7d7;border:1px solid #feb2b2;border-radius:8px;color:#c53030;margin-bottom:15px;padding:12px 16px}.form-row{grid-gap:15px;display:grid;gap:15px;grid-template-columns:1fr 1fr;margin-bottom:15px}.form-group.full-width{grid-column:1/-1}.form-group label{color:#2d3748;display:block;font-size:14px;font-weight:500;margin-bottom:5px}.form-group input,.form-group select,.form-group textarea{background:#fff;border:2px solid #e2e8f0;border-radius:8px;box-sizing:border-box;font-size:14px;padding:10px 12px;transition:border-color .2s;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#667eea;outline:none}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{cursor:not-allowed;opacity:.6}.form-group.checkbox,.form-group.checkbox label{align-items:center;display:flex}.form-group.checkbox label{cursor:pointer;gap:8px;margin:0}.form-location-preview{background:#f7fafc;border-radius:8px;color:#4a5568;font-size:14px;margin:15px 0;padding:10px 15px}.form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:20px}.form-actions button{border:none;border-radius:10px;cursor:pointer;font-size:16px;font-weight:600;padding:12px 30px;transition:all .3s}.cancel-btn{background:#e2e8f0;color:#4a5568}.cancel-btn:hover:not(:disabled){background:#cbd5e0}.submit-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.submit-btn:hover:not(:disabled){box-shadow:0 4px 15px #667eea66;transform:translateY(-2px)}.cancel-btn:disabled,.submit-btn:disabled{cursor:not-allowed;opacity:.6}.spinner{animation:spin .8s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;display:inline-block;height:16px;margin-right:8px;width:16px}@media (max-width:640px){.form-row{grid-template-columns:1fr}.location-form-modal{padding:20px}.form-actions{flex-direction:column}.form-actions button{width:100%}}.category-input-group,.subcategory-input-group{display:flex;flex-direction:column;gap:8px;width:100%}.category-select,.subcategory-select{background:#fff;border:2px solid #e0e0e0;border-radius:8px;font-size:14px;padding:10px 12px;transition:border-color .2s;width:100%}.category-select:focus,.subcategory-select:focus{border-color:#4285f4;outline:none}.custom-input-wrapper{animation:slideDown .3s ease;width:100%}.custom-input{background:#f0f7ff;border:2px solid #4285f4;border-radius:8px;font-size:14px;padding:10px 12px;transition:border-color .2s;width:100%}.custom-input:focus{border-color:#3367d6;box-shadow:0 0 0 3px #4285f41a;outline:none}.text-input-alt{background:#fafafa;border:2px dashed #ddd;border-radius:8px;font-size:14px;padding:10px 12px;transition:all .2s;width:100%}.text-input-alt:focus{background:#fff;border-color:#4285f4;border-style:solid;outline:none}.text-input-alt::placeholder{color:#aaa}.or-divider{align-items:center;color:#999;display:flex;font-size:12px;font-weight:600;justify-content:center;letter-spacing:1px;padding:4px 0;text-transform:uppercase}.or-divider span{background:#f5f5f5;border-radius:4px;padding:0 10px}.field-hint{color:#999;display:block;font-size:12px;margin-top:4px}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.auth-overlay{align-items:center;animation:fadeIn .3s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.auth-modal{animation:slideUp .3s ease;background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:440px;overflow-y:auto;padding:40px;position:relative;width:100%}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.auth-close{background:none;border:none;border-radius:8px;color:#666;cursor:pointer;font-size:24px;padding:5px 10px;position:absolute;right:15px;top:15px;transition:all .2s}.auth-close:hover{background:#f0f0f0;color:#333}.auth-header{margin-bottom:30px;text-align:center}.auth-icon{font-size:48px;margin-bottom:10px}.auth-header h2{color:#1a202c;font-size:24px;font-weight:700;margin:0 0 8px}.auth-header p{color:#718096;font-size:14px;margin:0}.auth-error{background:#fed7d7;border:1px solid #feb2b2;border-radius:10px;color:#c53030;font-size:14px;margin-bottom:20px;padding:12px 16px}.auth-field{margin-bottom:18px}.auth-field label{color:#2d3748;display:block;font-size:14px;font-weight:600;margin-bottom:6px}.auth-field input{background:#f7fafc;border:2px solid #e2e8f0;border-radius:10px;box-sizing:border-box;font-size:16px;padding:12px 16px;transition:all .2s;width:100%}.auth-field input:focus{background:#fff;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.auth-field input:disabled{cursor:not-allowed;opacity:.6}.password-input-wrapper{align-items:center;display:flex;position:relative}.password-input-wrapper input{padding-right:45px}.password-toggle{background:none;border:none;border-radius:6px;cursor:pointer;font-size:20px;padding:4px 8px;position:absolute;right:12px;transition:background .2s}.password-toggle:hover{background:#e2e8f0}.auth-submit{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-top:10px;padding:14px;transition:all .3s;width:100%}.auth-submit:hover:not(:disabled){box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}.auth-submit:disabled{cursor:not-allowed;opacity:.7}.auth-submit .auth-spinner{animation:spin .8s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;display:inline-block;height:16px;margin-right:8px;vertical-align:middle;width:16px}@keyframes spin{to{transform:rotate(1turn)}}.auth-google{align-items:center;background:#fff;border:2px solid #e2e8f0;border-radius:10px;color:#2d3748;cursor:pointer;display:flex;font-size:16px;font-weight:500;gap:10px;justify-content:center;padding:12px;transition:all .3s;width:100%}.auth-google:hover:not(:disabled){background:#f7fafc;border-color:#cbd5e0;transform:translateY(-2px)}.auth-google:disabled{cursor:not-allowed;opacity:.6}.auth-phone-toggle{background:#0000;border:2px dashed #667eea;border-radius:10px;color:#667eea;cursor:pointer;font-size:14px;margin-top:10px;padding:12px;transition:all .3s;width:100%}.auth-phone-toggle:hover:not(:disabled){background:#f7fafc}.auth-phone-toggle:disabled{cursor:not-allowed;opacity:.6}.auth-toggle{margin-top:20px;text-align:center}.auth-toggle button{background:none;border:none;color:#667eea;cursor:pointer;font-size:14px;text-decoration:underline;transition:color .2s}.auth-toggle button:hover:not(:disabled){color:#5a67d8}.auth-toggle button:disabled{cursor:not-allowed;opacity:.6}.auth-divider{align-items:center;color:#a0aec0;display:flex;font-size:14px;margin:20px 0}.auth-divider:after,.auth-divider:before{background:#e2e8f0;content:"";flex:1 1;height:1px}.auth-divider span{padding:0 15px}.auth-footer{margin-top:15px;text-align:center}.auth-switch{background:none;border:none;color:#718096;cursor:pointer;font-size:14px;transition:color .2s}.auth-switch:hover:not(:disabled){color:#667eea}.auth-switch:disabled{cursor:not-allowed;opacity:.5}.auth-modal::-webkit-scrollbar{width:6px}.auth-modal::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.auth-modal::-webkit-scrollbar-thumb{background:#cbd5e0;border-radius:10px}.auth-modal::-webkit-scrollbar-thumb:hover{background:#a0aec0}@media (max-width:480px){.auth-modal{margin:20px;max-height:95vh;padding:30px 20px}.auth-header h2{font-size:20px}}.user-dashboard{background:#f5f7fa;display:flex;flex-direction:column;font-family:Segoe UI,system-ui,sans-serif;height:100vh}.user-header{align-items:center;background:#fff;border-bottom:1px solid #e1e8ed;display:flex;flex-shrink:0;flex-wrap:wrap;gap:10px;justify-content:space-between;padding:12px 20px}.user-header h1{color:#1a1a2e;font-size:18px;font-weight:700;margin:0}.user-controls{display:flex;flex-wrap:wrap;gap:8px}.user-controls button{border:none;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;padding:8px 14px;transition:all .2s}.btn-location{background:#4285f4;color:#fff}.btn-camera{background:#1a1a2e;color:#fff}.btn-track{background:#f0f0f0;color:#333}.btn-location:hover{background:#3367d6}.btn-camera:hover{background:#2d2d4e}.btn-track:hover{background:#e0e0e0}.btn-location:disabled{background:#a0b8e8;cursor:not-allowed}.location-banner{align-items:center;display:flex;flex-shrink:0;font-size:13px;font-weight:500;gap:10px;padding:8px 20px}.location-banner.success{background:#e8f5e9;color:#2e7d32}.location-banner.warning{background:#fff3e0;color:#e65100}.location-banner.error{background:#ffebee;color:#c62828}.location-banner.info{background:#e3f2fd;color:#1565c0}.location-banner button{background:#0000001a;border:none;border-radius:6px;cursor:pointer;font-size:12px;margin-left:auto;padding:4px 10px}.user-layout{display:flex;flex:1 1;overflow:hidden}.filter-sidebar{background:#fff;border-right:1px solid #e1e8ed;display:flex;flex-direction:column;flex-shrink:0;gap:0;overflow-y:auto;width:220px}.map-container{flex:1 1;position:relative}.map-container>div{height:100%;width:100%}.recenter-btn{background:#fff;border:1px solid #d0d7de;border-radius:8px;bottom:24px;box-shadow:0 2px 8px #00000026;cursor:pointer;font-size:13px;font-weight:600;padding:10px 16px;position:absolute;right:16px;z-index:10}.recenter-btn:hover{background:#f5f5f5}.storage-meter{border-top:1px solid #f0f0f0;margin-top:auto;padding:14px 16px}.storage-meter-header{align-items:center;color:#333;display:flex;font-size:13px;font-weight:600;justify-content:space-between;margin-bottom:4px}.storage-stats{color:#666;font-size:11px;font-weight:400}.storage-note{color:#aaa;font-size:11px;margin:0}.tracker-panel{background:#fff;border-left:1px solid #e1e8ed;flex-shrink:0;overflow-y:auto;width:260px}.loading-container{align-items:center;color:#555;display:flex;flex-direction:column;gap:12px;height:100%;justify-content:center}@media (max-width:768px){.filter-sidebar,.tracker-panel{display:none}.user-header h1{font-size:15px}}.floating-add-btn{align-items:center;animation:bounceIn .5s ease;background:#4285f4;border:none;border-radius:50px;bottom:80px;box-shadow:0 4px 20px #4285f466;color:#fff;cursor:pointer;display:flex;font-size:15px;font-weight:600;gap:10px;padding:14px 24px;position:absolute;right:20px;transition:all .3s ease;z-index:1001}.floating-add-btn:hover{background:#3367d6;box-shadow:0 6px 30px #4285f480;transform:translateY(-3px)}.floating-add-btn:active{transform:scale(.95)}.floating-add-btn .btn-icon{font-size:20px}.floating-add-btn .btn-text{white-space:nowrap}@media (max-width:768px){.floating-add-btn{bottom:70px;font-size:13px;padding:12px 18px;right:16px}.floating-add-btn .btn-text{display:none}.floating-add-btn .btn-icon{font-size:22px}}.custom-info-window{background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000026;margin-top:-10px;max-width:300px;min-width:200px;padding:16px 20px;position:relative;transform:translateX(-50%)}.custom-info-window:after{border-left:10px solid #0000;border-right:10px solid #0000;border-top:10px solid #fff;bottom:-10px;content:"";height:0;left:50%;position:absolute;transform:translateX(-50%);width:0}.info-close{background:none;border:none;border-radius:4px;color:#999;cursor:pointer;font-size:16px;padding:2px 6px;position:absolute;right:8px;top:8px;transition:all .2s}.info-close:hover{background:#f0f2f5;color:#333}.btn-login{background:#0000;border:2px solid #4285f4;border-radius:8px;color:#4285f4;cursor:pointer;font-size:12px;font-weight:600;padding:6px 16px;transition:all .2s}.btn-login:hover,.btn-signup{background:#4285f4;color:#fff}.btn-signup{border:none;border-radius:8px;cursor:pointer;font-size:12px;font-weight:600;padding:6px 16px;transition:all .2s}.btn-signup:hover{background:#3367d6;box-shadow:0 4px 12px #4285f44d;transform:translateY(-2px)}.btn-logout{background:#f0f2f5;border:none;border-radius:8px;color:#333;cursor:pointer;font-size:12px;font-weight:600;padding:6px 16px;transition:all .2s}.btn-logout:hover{background:#ffebee;color:#c62828}.user-email{background:#f0f2f5;border-radius:6px;color:#666;font-size:12px;max-width:120px;overflow:hidden;padding:6px 8px;text-overflow:ellipsis;white-space:nowrap}.loading-dot{animation:gpsPulse 1.5s ease-in-out infinite;background:#4285f4;border-radius:50%;display:inline-block;flex-shrink:0;height:10px;width:10px}.gps-searching-banner{align-items:center;animation:slideDown .3s ease;background:linear-gradient(135deg,#e3f2fd,#bbdefb);border-bottom:1px solid #0000000d;color:#0d47a1;display:flex;flex-shrink:0;font-size:13px;font-weight:500;gap:12px;padding:8px 20px}.gps-pulse-dot{animation:gpsPulse 1.5s ease-in-out infinite;background:#4285f4;border-radius:50%;flex-shrink:0;height:10px;width:10px}.gps-tip{font-size:12px;font-weight:400;margin-left:auto;opacity:.8}@media (max-width:768px){.user-email{font-size:11px;max-width:80px}.btn-login,.btn-logout,.btn-signup{font-size:11px;padding:4px 12px}}@keyframes pulse-ring{0%{opacity:.8;transform:translate(-50%,-50%) scale(.8)}to{opacity:0;transform:translate(-50%,-50%) scale(1.6)}}.lottie-overlay-wrapper{z-index:1000}.lottie-overlay-wrapper:hover{z-index:1001}@keyframes lottie-glow{0%,to{opacity:.5;transform:translate(-50%,-50%) scale(.8)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.2)}}@keyframes lottie-pulse{0%{opacity:.8;transform:translate(-50%,-50%) scale(.8)}to{opacity:0;transform:translate(-50%,-50%) scale(1.8)}}.lottie-overlay-wrapper{animation:lottie-float 3s ease-in-out infinite}@keyframes lottie-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.lottie-overlay-wrapper:hover{animation-play-state:paused}.user-location-marker{animation:user-float 2.5s ease-in-out infinite}@keyframes user-float{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-10px) scale(1.05)}}.lottie-overlay-wrapper{pointer-events:auto}.map-controls{bottom:30px;display:flex;flex-direction:column;gap:10px;position:absolute;right:30px;z-index:10}.map-controls button{align-items:center;background:#fff;border:1px solid #ddd;border-radius:50%;box-shadow:0 2px 6px #0000004d;cursor:pointer;display:flex;font-size:20px;height:48px;justify-content:center;transition:all .2s;width:48px}.map-controls button:hover{background:#f5f5f5;transform:scale(1.05)}.floating-add-btn,.floating-image-btn,.recenter-btn{position:static!important}
/*# sourceMappingURL=main.dc4119f3.css.map*/