:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh;padding:0}@media (max-width: 768px){body{padding:0;align-items:flex-start}}h1{font-size:3.2em;line-height:1.1}@media (max-width: 768px){h1{font-size:2.2em}h2{font-size:1.8em}h3{font-size:1.4em}}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s;min-height:44px}@media (max-width: 768px){button{padding:.8em 1.4em;font-size:1.1em;min-height:48px;width:auto;min-width:120px}}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}#root{max-width:1000px;margin:0 auto;padding:2rem;text-align:center;width:100%;box-sizing:border-box}@media (max-width: 768px){#root{padding:1rem;max-width:100%}}@media (max-width: 480px){#root{padding:.5rem}}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}.app{width:100%;max-width:100%}.data-form{max-width:100%;width:100%;text-align:left;padding:0}.data-form h2{text-align:center;margin-bottom:2rem;color:#333}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:#555}.form-group input{width:100%;padding:.75rem;border:2px solid #ddd;border-radius:8px;font-size:1rem;box-sizing:border-box;transition:border-color .3s ease}.form-group input:focus{outline:none;border-color:#646cff}.required{color:#e74c3c;font-weight:700}.camera-section{margin:2rem 0}.camera-section h3{margin-bottom:1.5rem;color:#333;text-align:center}.camera-capture,.submit-container{margin-bottom:2rem;padding:1rem;border-radius:12px;display:flex;flex-direction:column;flex-wrap:nowrap;align-items:center;justify-content:center}.camera-capture label{display:block;margin-bottom:1rem;font-weight:600;color:#555;text-align:center}.camera-view{position:relative;width:100%;max-width:100%;margin-bottom:1rem}.camera-view video{width:100%;height:auto;max-height:60vh;border-radius:8px;object-fit:cover}.camera-controls{display:flex;gap:1rem;justify-content:center;margin-top:1rem;flex-wrap:wrap}.image-preview{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%}.image-preview img{width:100%;max-width:300px;height:auto;border-radius:8px;margin-bottom:1rem}.btn-primary{background-color:#646cff;color:#fff;border:none;padding:1rem 2rem;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:background-color .3s ease;width:100%;max-width:300px}.btn-primary:hover{background-color:#535bf2}.btn-secondary{background-color:#6c757d;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;cursor:pointer;transition:background-color .3s ease}.btn-secondary:hover{background-color:#5a6268}.btn-capture{background-color:#28a745;color:#fff;border:none;padding:1rem 2rem;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;flex:1;max-width:200px}.btn-capture:hover{background-color:#218838}.btn-cancel{background-color:#dc3545;color:#fff;border:none;padding:1rem 2rem;border-radius:8px;font-size:1.1rem;cursor:pointer;flex:1;max-width:200px}.btn-cancel:hover{background-color:#c82333}.btn-submit{background-color:#007bff;color:#fff;border:none;padding:1.2rem 2rem;border-radius:8px;font-size:1.2rem;font-weight:600;cursor:pointer;width:100%;transition:background-color .3s ease;max-width:300px}.btn-submit:hover:not(:disabled){background-color:#0056b3}.btn-submit:disabled{background-color:#6c757d;cursor:not-allowed}.btn-small{padding:.5rem 1rem;font-size:.9rem;margin-top:.5rem}.btn-compact-camera{width:100%;height:50px;background-color:#6c757d;color:#fff;border:none;border-radius:6px;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:0;max-width:100%;box-sizing:border-box;padding:0}.loading{text-align:center;color:#007bff;font-style:italic;padding:1rem}.error{text-align:center;color:#dc3545;padding:1rem}.error p{margin-bottom:1rem}.location-info{text-align:center}.location-info .success{color:#28a745;font-weight:600;margin-bottom:.5rem}.location-info small{display:block;color:#666;margin-bottom:1rem;font-size:.9rem}.species-selector{margin-bottom:2rem}.species-selector label{display:block;margin-bottom:.5rem;font-weight:600;color:#555}.species-input-wrapper{position:relative;display:flex;align-items:center}.species-input{width:100%;padding:.75rem;border:2px solid #ddd;border-radius:8px;font-size:1rem;box-sizing:border-box;transition:border-color .3s ease}.species-input:focus{outline:none;border-color:#646cff}.btn-clear{position:absolute;right:.5rem;background:none;border:none;font-size:1.5rem;color:#999;cursor:pointer;padding:0;min-height:auto;width:auto;min-width:auto}.btn-clear:hover{color:#666}.species-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:2px solid #ddd;border-top:none;border-radius:0 0 8px 8px;max-height:300px;overflow-y:auto;z-index:1000;box-shadow:0 4px 6px #0000001a}.species-option{padding:.75rem;cursor:pointer;border-bottom:1px solid #eee;transition:background-color .2s ease}.species-option:hover{background-color:#f8f9fa}.species-option:last-child{border-bottom:none}.species-hint{padding:.75rem;text-align:center;color:#666;font-style:italic;font-size:.9rem}.species-no-results{padding:.75rem;text-align:center;color:#999;font-style:italic}.alert{padding:1rem;margin:1rem 0;border-radius:8px;text-align:center;font-weight:600}.alert-success{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.alert-error{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}@media (max-width: 768px){.data-form h2{font-size:1.8rem;margin-bottom:1.5rem}.camera-section h3{font-size:1.4rem}.camera-capture{padding:.75rem;margin-bottom:1.5rem}.camera-view video{max-height:50vh}.camera-controls{gap:.75rem}.btn-primary,.btn-capture,.btn-cancel{padding:.875rem 1.5rem;font-size:1rem}.form-group{margin-bottom:1.25rem}.species-selector{margin-bottom:1.5rem}.species-dropdown{max-height:250px}}@media (max-width: 480px){.data-form h2{font-size:1.5rem;margin-bottom:1rem}.camera-section h3{font-size:1.2rem}.camera-capture{padding:.5rem}.camera-view video{max-height:40vh}.camera-controls{flex-direction:column;gap:.5rem}.btn-capture,.btn-cancel{max-width:none;width:100%}.image-preview img{max-width:100%}.form-group input,.species-input{padding:.875rem;font-size:1.1rem}.species-dropdown{max-height:200px}.species-option{padding:1rem;font-size:1.1rem}.btn-submit{padding:1rem 1.5rem;font-size:1.1rem}}@media (prefers-color-scheme: dark){.data-form h2,.camera-section h3,.form-group label,.camera-capture label,.species-selector label{color:#e0e0e0}.camera-capture{border-color:#444}.form-group input,.species-input{background-color:#1a1a1a;border-color:#444;color:#e0e0e0}.species-dropdown{background:#1a1a1a;border-color:#444}.species-option:hover{background-color:#333}}.upload-status{margin-top:20px;padding:15px;border:1px solid #ddd;border-radius:8px;background-color:#f9f9f9;box-shadow:0 2px 4px #0000001a}.upload-status-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.upload-status-header h4{margin:0;font-size:16px;color:#333}.btn-clear{background:#ff6b6b;color:#fff;border:none;padding:4px 8px;border-radius:4px;font-size:12px;cursor:pointer;transition:background-color .2s}.btn-clear:hover{background:#ff5252}.upload-queue{display:flex;flex-direction:column;gap:8px}.upload-task{padding:10px;border-radius:6px;border:1px solid #e0e0e0;background:#fff;transition:all .3s ease}.upload-task-queued{border-left:4px solid #ffa726;background-color:#fff8e1}.upload-task-uploading{border-left:4px solid #42a5f5;background-color:#e3f2fd}.upload-task-completed{border-left:4px solid #66bb6a;background-color:#e8f5e8}.upload-task-failed{border-left:4px solid #ef5350;background-color:#ffebee}.task-info{display:flex;align-items:center;gap:8px;margin-bottom:5px}.task-icon{font-size:16px;width:20px;text-align:center}.task-description{flex:1;font-size:14px;text-align:left;color:#333}.task-status{font-size:12px;color:#666;font-weight:500}.progress-bar{width:100%;height:4px;background-color:#e0e0e0;border-radius:2px;overflow:hidden;margin-top:5px}.progress-fill{height:100%;background:linear-gradient(90deg,#42a5f5,#1e88e5);transition:width .3s ease;border-radius:2px}.task-error{margin-top:5px;padding:5px;background-color:#ffcdd2;border-radius:3px;font-size:12px;color:#c62828}.queue-status{margin-top:15px;padding:10px;background-color:#e8f4fd;border-radius:6px;font-size:14px;color:#1565c0;text-align:center}@media (prefers-color-scheme: dark){.upload-status{background-color:#2a2a2a;border-color:#444}.upload-status-header h4{color:#e0e0e0}.upload-task{background:#1a1a1a;border-color:#444}.upload-task-queued{background-color:#2a2419}.upload-task-uploading{background-color:#1a2329}.upload-task-completed{background-color:#1a251a}.upload-task-failed{background-color:#2a1a1a}.task-description{color:#e0e0e0}.task-status{color:#aaa}.progress-bar{background-color:#444}.task-error{background-color:#4a1a1a;color:#ff8a80}.queue-status{background-color:#1a2329;color:#81d4fa}}
