.openseadragon-container{position:relative;width:100%;height:100%;z-index:1}.openseadragon-canvas{position:absolute;top:0;left:0;width:100%;height:100%;opacity:1!important;visibility:visible!important}.openseadragon-canvas canvas{opacity:1!important;visibility:visible!important;display:block!important}:root{--color-flowers: #FF69B4;--color-trees: #228B22;--color-fruit-trees: #FF7F50;--color-insects: #20B2AA;--color-birds: #87CEEB;--color-mammals: #8B4513;--color-butterflies: #9370DB;--color-other: #708090;--color-job-sheet: #FFD700}*{margin:0;padding:0;box-sizing:border-box}html{font-family:Inter,system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.4}body{margin:0;padding:0;overflow:hidden;touch-action:none;background-color:#f3f4f6}.dark-theme body{background-color:#0b1220}.dark-theme .control-panel{background:#0f172aeb;border-color:#94a3b826;box-shadow:-2px 0 25px #00000073}.dark-theme .control-panel-header{border-bottom-color:#1e293bcc}.dark-theme .control-panel-title{color:#e2e8f0}.dark-theme .filter-section-title{color:#94a3b8}.dark-theme .filter-item,.dark-theme .category-item,.dark-theme .setting-item,.dark-theme .tool-button,.dark-theme .photo-button{background:#1e293bbf;border-color:#47556959;color:#e2e8f0}.dark-theme .filter-item:hover,.dark-theme .category-item:hover,.dark-theme .setting-item:hover,.dark-theme .tool-button:hover,.dark-theme .photo-button:hover{background:#1e293be6}.dark-theme .category-name,.dark-theme .form-label,.dark-theme .modal-title{color:#e2e8f0}.dark-theme .form-input,.dark-theme .form-textarea{background:#0f172acc;border-color:#47556973;color:#e2e8f0}.dark-theme .form-input::placeholder,.dark-theme .form-textarea::placeholder{color:#94a3b8}.dark-theme .modal{background:#0f172afa;color:#e2e8f0}.dark-theme .modal-header{border-bottom-color:#1e293bcc}.dark-theme .modal-footer{border-top-color:#1e293bcc}.dark-theme .btn-secondary{background:#1e293be6;color:#e2e8f0}.dark-theme .btn-secondary:hover{background:#334155e6}.dark-theme .search-input-wrapper{background:#0f172ae6;border-color:#47556959}.dark-theme .search-input{color:#e2e8f0}.dark-theme .search-autocomplete{background:#0f172afa;border-color:#47556959}.dark-theme .search-autocomplete-item{color:#e2e8f0}.dark-theme .search-autocomplete-item:hover{background:#20b2aa1f}.dark-theme .search-autocomplete-item.active{background:#20b2aa2e;color:#5eead4}.dark-theme .filters-badge{background:#20b2aa26;border-color:#20b2aa59;color:#5eead4}.dark-theme .filters-badge:hover{background:#20b2aa38;border-color:#20b2aa73}.dark-theme .search-clear-hint{color:#94a3b8}.dark-theme .search-clear-hint:hover{color:#5eead4}.dark-theme .search-autocomplete-header{background:#1e293b80;border-bottom-color:#4755694d}.dark-theme .search-autocomplete-header-title,.dark-theme .search-autocomplete-clear{color:#94a3b8}.dark-theme .search-autocomplete-clear:hover{background:#ef444426;color:#fca5a5}.dark-theme .search-autocomplete-divider{background:#4755694d}.dark-theme .ar-info-item{background:#0f172ae6;color:#e2e8f0}.dark-theme .ar-distance-label{background:#000000d9}.dark-theme .ar-species-label{background:#1e293bf2;color:#e2e8f0}.h-screen{height:100vh}.flex-col{flex-direction:column}.top-0{top:0}.right-0{right:0}.left-0{left:0}.top-1\/2{top:50%}.left-1\/2{left:50%}.-translate-x-1\/2{transform:translate(-50%)}.-translate-y-1\/2{transform:translateY(-50%)}.transform{transform:translate(-50%,-50%)}.z-10{z-index:10}.z-1000{z-index:1000}.aerial-map{flex:1;height:100vh;touch-action:none;position:relative;background:#000;overflow:hidden;will-change:transform;contain:layout style paint;isolation:isolate;transform:translateZ(0)}.control-panel{position:relative;height:100%;background:#fffffff2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.2);box-shadow:-2px 0 25px #00000026;transition:width .25s cubic-bezier(.25,.1,.25,1);z-index:50;flex-shrink:0}.control-panel.collapsed{width:0px;border-width:0;box-shadow:none;overflow:visible}.control-panel.expanded{width:320px}.control-panel-toggle{position:absolute;left:0;top:50%;transform:translate(-80%,-50%);width:60px;height:90px;background:linear-gradient(135deg,#20b2aa40,#20b2aa2e);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);color:#0d7d76;border-radius:18px 0 0 18px;border:2px solid rgba(32,178,170,.5);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .25s cubic-bezier(.25,.1,.25,1);box-shadow:0 4px 16px #20b2aa40,0 2px 6px #0000001a}.control-panel-toggle:hover{background:linear-gradient(135deg,#20b2aa59,#20b2aa40);border-color:#20b2aa99;transform:translate(-80%,-50%) scale(1.05);box-shadow:0 6px 20px #20b2aa4d,0 3px 6px #0000001f}.control-panel-content{height:100%;display:flex;flex-direction:column;padding:16px;overflow-y:auto}.control-panel.collapsed .control-panel-content{overflow-y:hidden;opacity:0;pointer-events:none}.control-panel-header{padding:24px;border-bottom:1px solid rgba(229,231,235,.5);margin-bottom:16px}.control-panel-title{font-size:20px;font-weight:300;color:#111827;letter-spacing:-.025em}.year-filters{margin-bottom:24px}.year-filters button{transition:all .2s ease}.year-filters button:hover{opacity:.8}.year-filters .filter-item{margin-bottom:4px}.categories button{transition:all .2s ease}.categories button:hover{opacity:.8}.categories .category-item{margin-bottom:4px}.filter-section-title{font-size:14px;font-weight:500;color:#6b7280;margin-bottom:12px;display:flex;align-items:center}.filter-item{display:flex;align-items:center;justify-content:space-between;height:48px;padding:0 12px;background:#f9fafb;border-radius:8px;margin-bottom:8px;cursor:pointer;transition:background-color .2s}.filter-item:hover{background:#f3f4f6}.filter-checkbox{width:20px;height:20px;accent-color:#3b82f6}.categories{margin-bottom:24px}.category-item{display:flex;align-items:center;justify-content:space-between;min-height:56px;padding:0 12px;background:#f9fafb;border-radius:8px;margin-bottom:8px;cursor:pointer;transition:background-color .2s}.category-item:hover{background:#f3f4f6}.category-icon{font-size:24px;margin-right:12px}.category-name{font-size:14px;color:#374151}.tools{margin-bottom:24px}.tool-button{width:100%;height:56px;display:flex;align-items:center;justify-content:center;border-radius:8px;border:2px solid #d1d5db;background:#fff;color:#374151;cursor:pointer;transition:all .2s;margin-bottom:12px}.tool-button:hover{background:#f9fafb}.tool-button.active{border-color:#3b82f6;background:#eff6ff;color:#1d4ed8;box-shadow:0 0 0 3px #3b82f61a}.tool-button:disabled{opacity:.45;cursor:not-allowed}.settings{margin-bottom:24px}.setting-item{display:flex;align-items:center;justify-content:space-between;min-height:48px;padding:8px 16px;gap:16px;background:#f9fafb;border-radius:8px;margin-bottom:12px;cursor:pointer;transition:background-color .2s}.setting-item:hover{background:#f3f4f6}.toggle-switch{width:36px;height:20px;background:#d1d5db;border-radius:10px;position:relative;transition:background-color .2s}.toggle-switch.active{background:#3b82f6}.toggle-switch:after{content:"";position:absolute;width:16px;height:16px;background:#fff;border-radius:50%;top:2px;left:2px;transition:transform .2s}.toggle-switch.active:after{transform:translate(16px)}.observation-pin{width:36px;height:36px;border-radius:50%;position:absolute;transform:translate(-50%,-50%);cursor:pointer;z-index:100;border:3px solid white;box-shadow:0 2px 8px #00000026;filter:saturate(1.2) brightness(1.05)}.observation-polygon{position:absolute;stroke-width:3px;fill-opacity:.25;z-index:50;cursor:pointer;filter:saturate(1.2) brightness(1.05)}.loading-spinner{width:32px;height:32px;border:3px solid #f3f4f6;border-top:3px solid #3b82f6;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:50}.modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:16px;box-shadow:0 25px 50px #00000040;max-width:540px;width:90%;max-height:90vh;overflow:hidden;z-index:51}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:24px;border-bottom:1px solid #e5e7eb}.modal-title{font-size:24px;font-weight:600;color:#374151}.modal-close{padding:8px;background:none;border:none;cursor:pointer;border-radius:8px;transition:background-color .2s}.modal-close:hover{background:#f3f4f6}.modal-content{padding:24px;overflow-y:auto;max-height:60vh}.modal-footer{display:flex;gap:12px;padding:24px;border-top:1px solid #e5e7eb}.btn{flex:1;height:56px;border-radius:12px;font-weight:600;cursor:pointer;transition:all .2s;border:none;display:flex;align-items:center;justify-content:center;gap:8px}.btn-secondary{background:#f3f4f6;color:#374151}.btn-secondary:hover{background:#e5e7eb}.btn-primary{background:#3b82f6;color:#fff}.btn-primary:hover{background:#2563eb}.form-group{margin-bottom:24px}.form-label{display:block;font-size:14px;font-weight:500;color:#374151;margin-bottom:8px}.form-input{width:100%;height:44px;padding:0 16px;border:1px solid #d1d5db;border-radius:8px;font-size:16px;transition:border-color .2s}.form-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-textarea{width:100%;min-height:120px;padding:12px 16px;border:1px solid #d1d5db;border-radius:8px;font-size:16px;resize:none;transition:border-color .2s}.form-textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.photo-upload{margin-bottom:24px}.photo-buttons{display:flex;gap:12px;margin-bottom:12px}.photo-button{flex:1;height:48px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid #d1d5db;border-radius:8px;background:#f9fafb;color:#374151;cursor:pointer;transition:all .2s}.photo-button:hover{background:#f3f4f6}.photo-thumbnails{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.photo-thumbnail{position:relative;width:96px;height:96px;border-radius:8px;border:1px solid #e5e7eb;overflow:hidden}.photo-thumbnail img{width:100%;height:100%;object-fit:cover}.photo-delete{position:absolute;top:-8px;right:-8px;width:24px;height:24px;background:#ef4444;color:#fff;border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s}.photo-thumbnail:hover .photo-delete{opacity:1}.halo-menu{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;pointer-events:none}.halo-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0003;pointer-events:auto}.halo-center{position:absolute;width:64px;height:64px;background:#fff;border-radius:50%;border:2px solid #e5e7eb;display:flex;align-items:center;justify-content:center;transform:translate(-50%,-50%)}.halo-center:after{content:"";width:12px;height:12px;background:#9ca3af;border-radius:50%}.halo-button{position:absolute;width:56px;height:56px;border-radius:50%;border:2px solid white;box-shadow:0 4px 12px #00000026;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .2s;pointer-events:auto}.halo-button:hover{transform:translate(-50%,-50%) scale(1.1)}.rounded-3xl{border-radius:24px}.rounded-2xl{border-radius:16px}.shadow-2xl{box-shadow:0 25px 50px -12px #00000040}.bg-opacity-40{background-color:#0006}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.uppercase{text-transform:uppercase}.font-light{font-weight:300}.text-3xl{font-size:30px;line-height:36px}.text-lg{font-size:18px;line-height:28px}.text-base{font-size:16px;line-height:24px}.text-sm{font-size:14px;line-height:20px}.text-xs{font-size:12px;line-height:16px}.h-12{height:48px}.h-14{height:56px}.h-16{height:64px}.w-6{width:24px}.w-7{width:28px}.w-8{width:32px}.w-10{width:40px}.w-20{width:80px}.w-28{width:112px}.h-20{height:80px}.h-28{height:112px}.p-5{padding:20px}.p-6{padding:24px}.p-8{padding:32px}.px-5{padding-left:20px;padding-right:20px}.py-3{padding-top:12px;padding-bottom:12px}.py-4{padding-top:16px;padding-bottom:16px}.px-3{padding-left:12px;padding-right:12px}.px-4{padding-left:16px;padding-right:16px}.py-1\.5{padding-top:6px;padding-bottom:6px}.py-2{padding-top:8px;padding-bottom:8px}.px-8{padding-left:32px;padding-right:32px}.px-6{padding-left:24px;padding-right:24px}.mb-1{margin-bottom:4px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.mr-2{margin-right:8px}.mr-3{margin-right:12px}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.pt-3{padding-top:12px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.ml-2{margin-left:8px}.ml-3{margin-left:12px}.space-y-3>*+*{margin-top:12px}.space-y-4>*+*{margin-top:16px}.space-y-5>*+*{margin-top:20px}.space-y-8>*+*{margin-top:32px}.leading-relaxed{line-height:1.625}.leading-none{line-height:1}.capitalize{text-transform:capitalize}.group:hover .group-hover\:scale-110{transform:scale(1.1)}.group:hover .group-hover\:text-gray-700{color:#374151}.hover\:scale-\[1\.02\]:hover{transform:scale(1.02)}.hover\:scale-\[1\.05\]:hover{transform:scale(1.05)}.hover\:scale-110:hover{transform:scale(1.1)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.duration-200{transition-duration:.2s}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-gray-100\/50{border-color:#f3f4f680}.bg-gray-100\/50{background-color:#f3f4f680}.bg-blue-500\/10{background-color:#3b82f61a}.bg-blue-500\/20{background-color:#3b82f633}.bg-gray-200\/80{background-color:#e5e7ebcc}.bg-gray-100\/80{background-color:#f3f4f6cc}.bg-red-500\/10{background-color:#ef44441a}.bg-red-500\/20{background-color:#ef444433}.border-red-200\/50{border-color:#fecaca80}.border-blue-200\/50{border-color:#bfdbfe80}.border-gray-200\/50{border-color:#e5e7eb80}.text-blue-600{color:#2563eb}.text-blue-700{color:#1d4ed8}.text-red-600{color:#dc2626}.text-gray-600{color:#4b5563}.text-gray-700{color:#374151}.text-gray-900{color:#111827}.text-gray-500{color:#6b7280}.text-gray-400{color:#9ca3af}.placeholder-gray-400::placeholder{color:#9ca3af}.font-medium{font-weight:500}.flex-1{flex:1 1 0%}.flex-shrink{flex-shrink:1}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.max-w-sm{max-width:384px}.max-w-2xl{max-width:672px}.max-h-\[60vh\]{max-height:60vh}.max-h-\[90vh\]{max-height:90vh}.w-full{width:100%}.h-full{height:100%}.absolute{position:absolute}.relative{position:relative}.fixed{position:fixed}.inset-0{top:0;right:0;bottom:0;left:0}.z-50{z-index:50}.z-100{z-index:100}.block{display:block}.flex{display:flex}.grid{display:grid}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.border-0{border-width:0}.border{border-width:1px}.border-white{border-color:#fff}.border-gray-200{border-color:#e5e7eb}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:8px}.rounded-xl{border-radius:12px}.shadow-sm{box-shadow:0 1px 2px #0000000d}.shadow-md{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.shadow-lg{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.object-cover{object-fit:cover}.resize-none{resize:none}.outline-none{outline:2px solid transparent;outline-offset:2px}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;user-select:none}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.min-w-0{min-width:0}.flex-shrink-0{flex-shrink:0}.line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.pin-enter{animation:pinEnter .3s cubic-bezier(.25,.1,.25,1) forwards}.polygon-enter{animation:polygonEnter .3s cubic-bezier(.25,.1,.25,1) forwards}@keyframes pinEnter{0%{opacity:0;transform:translate(-50%,-50%) scale(.8)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes polygonEnter{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.observation-show{animation:observationShow .25s cubic-bezier(.25,.1,.25,1) forwards}.observation-hide{animation:observationHide .2s cubic-bezier(.25,.1,.25,1) forwards}@keyframes observationShow{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes observationHide{0%{opacity:1}to{opacity:0}}.halo-menu-enter{animation:haloEnter .2s cubic-bezier(.25,.1,.25,1) forwards}.halo-menu-exit{animation:haloExit .15s cubic-bezier(.25,.1,.25,1) forwards}.halo-button-hover{transition:transform .15s cubic-bezier(.25,.1,.25,1)}.halo-button-hover:hover{transform:translate(-50%,-50%) scale(1.1)}@keyframes haloEnter{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes haloExit{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(.9)}}.modal-backdrop-enter{animation:backdropEnter .2s cubic-bezier(.25,.1,.25,1) forwards}.modal-backdrop-exit{animation:backdropExit .2s cubic-bezier(.25,.1,.25,1) forwards}.modal-enter{animation:modalEnter .25s cubic-bezier(.25,.1,.25,1) forwards}.modal-exit{animation:modalExit .2s cubic-bezier(.25,.1,.25,1) forwards}@keyframes backdropEnter{0%{opacity:0;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px)}to{opacity:1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}}@keyframes backdropExit{0%{opacity:1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}to{opacity:0;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px)}}@keyframes modalEnter{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes modalExit{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.98)}}.control-panel{transition:width .25s cubic-bezier(.25,.1,.25,1)}.control-panel-content{transition:opacity .25s cubic-bezier(.25,.1,.25,1)}.search-container{position:relative;margin-bottom:16px}.search-header-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.search-input-wrapper{position:relative;display:flex;align-items:center;flex:1;min-width:180px;background:#ffffffe6;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(0,0,0,.08);border-radius:12px;padding:10px 12px;transition:all .3s cubic-bezier(.25,.1,.25,1)}.search-input-wrapper:focus-within{border-color:#20b2aa;box-shadow:0 0 0 3px #20b2aa1a}.search-icon{color:#9ca3af;flex-shrink:0;margin-right:8px}.search-input{flex:1;border:none;outline:none;background:transparent;font-size:14px;color:#374151;padding:0}.search-input::placeholder{color:#9ca3af}.search-clear-button{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;background:#0000000d;color:#6b7280;border-radius:50%;cursor:pointer;transition:all .2s cubic-bezier(.25,.1,.25,1);margin-left:8px}.search-clear-button:hover{background:#0000001a;color:#374151;transform:scale(1.1)}.search-clear-button:active{transform:scale(.95)}.search-autocomplete{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:12px;box-shadow:0 10px 25px #00000026;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);max-height:240px;overflow-y:auto;z-index:100;animation:autocompleteSlideIn .2s cubic-bezier(.25,.1,.25,1)}@keyframes autocompleteSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.search-autocomplete-item{display:block;width:100%;text-align:left;padding:12px 16px;border:none;background:transparent;color:#374151;font-size:14px;cursor:pointer;transition:all .15s cubic-bezier(.25,.1,.25,1);border-bottom:1px solid rgba(0,0,0,.04)}.search-autocomplete-item:last-child{border-bottom:none}.search-autocomplete-item:hover{background:#20b2aa14;color:#20b2aa}.search-autocomplete-item:active{background:#20b2aa26}.search-autocomplete::-webkit-scrollbar{width:6px}.search-autocomplete::-webkit-scrollbar-track{background:transparent}.search-autocomplete::-webkit-scrollbar-thumb{background:#0000001a;border-radius:3px}.search-autocomplete::-webkit-scrollbar-thumb:hover{background:#00000026}.filters-badge{padding:6px 10px;background:#20b2aa1f;border:1px solid rgba(32,178,170,.3);border-radius:12px;font-size:11px;font-weight:600;color:#0d7d76;white-space:nowrap;flex-shrink:0;cursor:help;transition:all .2s cubic-bezier(.25,.1,.25,1)}.filters-badge:hover{background:#20b2aa2e;border-color:#20b2aa66}.search-clear-hint{display:block;width:100%;text-align:left;padding:6px 8px;margin-top:4px;border:none;background:transparent;color:#6b7280;font-size:12px;cursor:pointer;transition:color .2s cubic-bezier(.25,.1,.25,1);text-decoration:underline}.search-clear-hint:hover{color:#20b2aa}.search-autocomplete-header{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:#00000005;border-bottom:1px solid rgba(0,0,0,.06)}.search-autocomplete-header-title{font-size:11px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em}.search-autocomplete-clear{padding:2px 8px;border:none;background:transparent;color:#6b7280;font-size:11px;font-weight:600;cursor:pointer;border-radius:6px;transition:all .15s cubic-bezier(.25,.1,.25,1)}.search-autocomplete-clear:hover{background:#ef44441a;color:#dc2626}.search-recent-icon{margin-right:8px;font-size:14px;opacity:.6}.search-autocomplete-divider{height:1px;background:#0000000f;margin:4px 0}.search-autocomplete-item.active{background:#20b2aa26;color:#0d7d76}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.observation-match-pulse{animation:matchPulse 2s cubic-bezier(.25,.1,.25,1) 3}@keyframes matchPulse{0%,to{box-shadow:0 0 #20b2aab3;transform:translate(-50%,-50%) scale(1)}50%{box-shadow:0 0 0 12px #20b2aa00;transform:translate(-50%,-50%) scale(1.1)}}.polygon-match-pulse{animation:polygonMatchPulse 2s cubic-bezier(.25,.1,.25,1) 3}@keyframes polygonMatchPulse{0%,to{filter:drop-shadow(0 0 0 rgba(32,178,170,.7));opacity:1}50%{filter:drop-shadow(0 0 15px rgba(32,178,170,.8));opacity:.85}}.pin-enter,.polygon-enter,.observation-show,.observation-hide,.halo-menu-enter,.halo-menu-exit,.modal-enter,.modal-exit,.modal-backdrop-enter,.modal-backdrop-exit{will-change:transform,opacity;backface-visibility:hidden;transform-style:preserve-3d}@keyframes fadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.heatmap-layer{position:absolute;pointer-events:auto;will-change:transform;backface-visibility:hidden;transform-style:preserve-3d}.heatmap-canvas{image-rendering:auto;cursor:pointer;transition:opacity .3s cubic-bezier(.25,.1,.25,1)}@keyframes heatmapFadeIn{0%{opacity:0}to{opacity:.7}}.heatmap-enter{animation:heatmapFadeIn .3s cubic-bezier(.25,.1,.25,1) forwards}.field-mode-ar{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#000;overflow:hidden}.ar-camera-view{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;z-index:1}.ar-top-bar{position:absolute;top:0;left:0;right:0;z-index:210;display:flex;align-items:center;justify-content:space-between;padding:16px;background:linear-gradient(180deg,#0009,#0000)}.ar-exit-button{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#fffffff2;border:none;border-radius:24px;font-size:14px;font-weight:600;color:#111827;cursor:pointer;box-shadow:0 4px 12px #0000004d;transition:all .2s cubic-bezier(.25,.1,.25,1)}.ar-exit-button:hover{background:#fff;transform:scale(1.05)}.ar-exit-button:active{transform:scale(.98)}.ar-test-mode-badge{display:flex;align-items:center;gap:6px;padding:8px 12px;background:#fbbf24e6;border-radius:20px;font-size:12px;font-weight:600;color:#78350f}.ar-bottom-bar{position:absolute;bottom:0;left:0;right:0;z-index:210;display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px;background:linear-gradient(0deg,#0009,#0000)}.ar-info-item{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#ffffffe6;border-radius:20px;font-size:14px;font-weight:500;color:#111827}.ar-warning{padding:8px 16px;background:#ef4444e6;border-radius:20px;font-size:13px;font-weight:500;color:#fff}.ar-error-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:220;display:flex;align-items:center;justify-content:center;background:#000c;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.ar-error-message{display:flex;flex-direction:column;align-items:center;gap:16px;padding:32px;max-width:320px;text-align:center;color:#fff}.ar-error-message svg{color:#ef4444}.ar-error-message p{font-size:16px;line-height:1.5}.observation-overlay-container{position:absolute;top:0;right:0;bottom:0;left:0;z-index:205;pointer-events:none}.ar-observation-marker{position:absolute;pointer-events:auto;display:flex;flex-direction:column;align-items:center;gap:4px;transition:transform .1s ease-out;animation:arMarkerFadeIn .3s cubic-bezier(.25,.1,.25,1)}@keyframes arMarkerFadeIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.8)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.ar-pin-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:3px solid;box-shadow:0 4px 12px #0006;transition:all .2s cubic-bezier(.25,.1,.25,1);filter:saturate(1.2) brightness(1.05)}.ar-observation-marker:hover .ar-pin-icon{transform:scale(1.15)}.ar-distance-label{padding:4px 8px;background:#000c;color:#fff;font-size:12px;font-weight:600;border-radius:12px;white-space:nowrap}.ar-species-label{padding:4px 10px;background:#fffffff2;color:#111827;font-size:13px;font-weight:600;border-radius:12px;white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}.ar-direction-label{padding:2px 6px;background:#20b2aae6;color:#fff;font-size:10px;font-weight:700;border-radius:8px;white-space:nowrap}.ar-compass-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:206;pointer-events:none}.ar-compass-crosshair{width:40px;height:40px;border:2px solid rgba(255,255,255,.6);border-radius:50%;position:relative}.ar-compass-crosshair:before,.ar-compass-crosshair:after{content:"";position:absolute;background:#fff9}.ar-compass-crosshair:before{width:2px;height:16px;top:50%;left:50%;transform:translate(-50%,-50%)}.ar-compass-crosshair:after{width:16px;height:2px;top:50%;left:50%;transform:translate(-50%,-50%)}.loading-spinner{width:40px;height:40px;margin:0 auto;border:3px solid rgba(59,130,246,.2);border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 768px){html,body{width:100vw;height:100vh;height:100dvh;overflow:hidden;position:fixed;overscroll-behavior:none}#root{width:100%;height:100%;overflow:hidden}.control-panel.collapsed{width:0px}.control-panel.expanded{width:100%;max-width:100vw;height:100%}.control-panel-toggle{width:60px;height:90px;transform:translate(-80%,-50%);border-radius:18px 0 0 18px;background:linear-gradient(135deg,#20b2aa47,#20b2aa33);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:2px solid rgba(32,178,170,.55);box-shadow:0 4px 16px #20b2aa47,0 2px 6px #0000001f;z-index:100}.control-panel-toggle:hover{transform:translate(-80%,-50%) scale(1.05)}.modal{width:95%;max-width:95vw;margin:20px}.aerial-map-container{width:100vw!important;height:100vh!important;height:100dvh!important;position:relative;overflow:hidden}.category-halo{transform:scale(.9)}.observation-form{max-height:85vh;max-height:85dvh}.loading-spinner{width:48px;height:48px;border-width:4px}img[alt="Aerial view of Toms Wood"]{min-width:100%;min-height:100%;object-fit:contain}}
