:root{--color-primary: #3b82f6;--color-success: #059669;--color-error: #ef4444;--color-text-dark: #333;--color-text-light: #fff;--color-bg-light: #f8f8f8;--color-border: #e2e8f0}html,body{margin:0;padding:0;height:100%;font-family:Inter,sans-serif;background-color:var(--color-bg-light)}.app-container{display:flex;flex-direction:column;height:100vh;overflow:hidden}.main-content{flex-grow:1;position:relative;display:flex}.map-container{flex-grow:1}#map{width:100%;height:100%}.map-error{display:flex;align-items:center;justify-content:center;height:100%;background-color:#eee;color:#666;font-size:1.2rem;padding:2rem;text-align:center}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.navbar,.footer{flex-shrink:0;background-color:#fff;padding:1rem 1.5rem;box-shadow:0 2px 4px #0000000d;z-index:50}.navbar-container{max-width:1200px;width:100%;margin:0 auto;display:flex;align-items:center;justify-content:space-between}.navbar-logo{display:flex;align-items:center;text-decoration:none;color:inherit;gap:.75rem;font-weight:600;font-size:1.25rem}.navbar-logo img{height:40px}.navbar-link{text-decoration:none;color:var(--color-primary);font-weight:500}.navbar-link:hover{text-decoration:underline}.footer{text-align:center;padding:.75rem;background-color:#f8f8f8;border-top:1px solid var(--color-border)}.footer p{margin:0;font-size:.85rem;color:#777}.fab{position:fixed;right:25px;bottom:25px;width:60px;height:60px;background-color:var(--color-primary);color:#fff;border:none;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #0000004d;cursor:pointer;z-index:100;transition:transform .2s ease,background-color .2s ease}.fab:hover{background-color:#2a64c4;transform:scale(1.05)}.modal-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:#0009;z-index:200;align-items:center;justify-content:center;padding:1rem;box-sizing:border-box}.modal-content{background:#fff;padding:1.5rem 2rem;border-radius:8px;width:100%;max-width:550px;max-height:90vh;overflow-y:auto;position:relative;box-shadow:0 5px 15px #0000004d}.close-button{position:absolute;top:10px;right:10px;background:none;border:none;font-size:2.5rem;color:#aaa;cursor:pointer;line-height:1}.close-button:hover{color:#333}.modal-content h2{margin-top:0;color:var(--color-primary)}.modal-content>p{margin-top:0}.modal-content form>div{margin-bottom:1rem}.modal-content label{display:block;margin-bottom:.5rem;font-weight:600}.modal-content input[type=file],.modal-content textarea,.modal-content select{width:100%;padding:.75rem;border:1px solid var(--color-border);border-radius:4px;box-sizing:border-box;font-family:Inter,sans-serif;font-size:1rem}.file-drop-zone{border:2px dashed var(--color-border);border-radius:8px;padding:1.5rem 1rem;text-align:center;cursor:pointer;transition:background-color .2s,border-color .2s;background-color:#f9fafb}.file-drop-zone:hover{background-color:#f0f4f8;border-color:var(--color-primary)}.file-drop-zone-inner{display:flex;flex-direction:column;align-items:center;gap:.5rem}.file-drop-zone-inner svg{width:40px;height:40px;color:#999}.file-drop-zone-inner span{font-weight:600;color:var(--color-primary);font-size:1rem}.file-drop-zone-inner p{font-size:.8em;margin:0;color:#666}.file-name{font-size:.8em;color:#666;margin-top:8px;text-align:center}.upload-button,.secondary-button{width:100%;padding:.8rem 1.2rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;text-align:center;box-sizing:border-box}.upload-button{background-color:var(--color-primary);color:var(--color-text-light)}.upload-button:hover{background-color:#2a64c4}.secondary-button{background-color:#e2e8f0;color:var(--color-text-dark);border:1px solid var(--color-border);margin-top:.5rem}.secondary-button:hover{background-color:#cbd5e1}#status-message{margin-top:1rem;padding:.75rem;border-radius:4px;text-align:center;font-weight:500}.camera-modal-overlay{z-index:300;display:none;position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000000b3;align-items:center;justify-content:center}.camera-modal-content{background-color:#fff;padding:1.5rem;border-radius:8px;width:90%;max-width:500px;text-align:center}#camera-video{width:100%;height:auto;border-radius:4px;margin-bottom:1rem;background-color:#333}.camera-controls{display:flex;gap:1rem}@media (min-width: 768px){.fab{bottom:40px;right:40px}}
