*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:linear-gradient(135deg,#0a0a0a,#1a1a2e);color:#fff;overflow:hidden;-webkit-font-smoothing:antialiased}#app{width:100vw;height:100vh;position:relative}.menu-toggle{position:fixed;top:15px;left:15px;z-index:1000;background:#000c;border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:12px;width:48px;height:48px;cursor:pointer;display:none;flex-direction:column;justify-content:space-around;align-items:center;backdrop-filter:blur(10px);transition:all .3s ease}.menu-toggle span{width:24px;height:3px;background:#fff;border-radius:2px;transition:all .3s ease}.menu-toggle.active span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.menu-toggle.active span:nth-child(2){opacity:0}.menu-toggle.active span:nth-child(3){transform:rotate(-45deg) translate(7px,-7px)}.header{position:absolute;top:20px;left:50%;transform:translate(-50%);text-align:center;z-index:100;background:#000000b3;padding:15px 30px;border-radius:10px;backdrop-filter:blur(10px);transition:all .3s ease}.version-badge{position:absolute;top:10px;right:10px;background:#ffffff1a;color:#ffffffb3;padding:4px 10px;border-radius:12px;font-size:.7rem;font-weight:500;border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(5px)}.language-toggle{position:fixed;top:20px;right:20px;background:#000000b3;border:1px solid rgba(255,255,255,.2);border-radius:16px;padding:6px 10px;display:flex;align-items:center;gap:4px;cursor:pointer;backdrop-filter:blur(10px);transition:all .3s ease;z-index:150}.language-toggle:hover{background:#000000d9;border-color:#ffffff4d}.settings-toggle{position:fixed;top:65px;right:20px;background:#000000b3;border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:8px 12px;font-size:1.2rem;cursor:pointer;backdrop-filter:blur(10px);transition:all .3s ease;z-index:150}.settings-toggle:hover{background:#000000d9;border-color:#ffffff4d;transform:rotate(45deg)}.lang-option{padding:4px 8px;border-radius:12px;font-size:.7rem;font-weight:500;color:#fff9;cursor:pointer;transition:all .3s ease}.lang-option.active{background:#fff3;color:#fff}.lang-divider{color:#fff6;font-size:.7rem}.header h1{font-size:2rem;margin-bottom:5px;font-weight:600}.subtitle{font-size:.9rem;opacity:.8}#globe-container{width:100%;height:100%;position:relative}.species-label{background:#000000d9;padding:2px 5px;border-radius:4px;font-size:11px;font-weight:500;white-space:nowrap;pointer-events:auto;user-select:none;text-shadow:0 1px 2px rgba(0,0,0,.8);backdrop-filter:blur(5px);border:1px solid rgba(255,255,255,.2);box-shadow:0 2px 4px #0000004d;transition:all .2s ease;cursor:pointer}.species-label:hover{background:#000000f2;transform:scale(1.1);border-color:#fff6;box-shadow:0 3px 6px #00000080}.geo-label{font-family:Arial Black,Impact,sans-serif;text-transform:uppercase;letter-spacing:2px;pointer-events:none;user-select:none;text-shadow:0 0 8px rgba(0,0,0,.9),0 0 12px rgba(0,0,0,.7),1px 1px 3px rgba(0,0,0,1),-1px -1px 3px rgba(0,0,0,1);opacity:.7;white-space:nowrap}.info-panel{position:absolute;top:50%;right:30px;transform:translateY(-50%);width:350px;max-height:80vh;background:#000000e6;border-radius:15px;padding:20px;overflow-y:auto;z-index:200;backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);transition:all .3s cubic-bezier(.4,0,.2,1)}.info-panel.hidden{right:-400px;opacity:0}.panel-handle{display:none}.close-btn{position:absolute;top:10px;right:10px;background:#ffffff1a;border:none;border-radius:50%;color:#fff;font-size:1.5rem;width:36px;height:36px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.close-btn:hover{background:#fff3;transform:rotate(90deg)}.species-image{width:100%;height:200px;background:#2a2a2a;border-radius:10px;margin-bottom:15px;display:flex;align-items:center;justify-content:center;font-size:4rem}.scientific-name{font-style:italic;opacity:.7;margin-bottom:10px}.status-badge{display:inline-block;padding:5px 15px;border-radius:20px;font-weight:700;margin-bottom:20px;font-size:.9rem}.info-section{margin-bottom:20px}.info-section h3{font-size:1.1rem;margin-bottom:10px}.info-section p{line-height:1.6;opacity:.9}.info-links{border-top:1px solid rgba(255,255,255,.1);padding-top:15px;margin-top:20px}.link-buttons{display:flex;flex-direction:column;gap:10px;margin-top:12px}.link-button{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#4caf501a;border:1px solid rgba(76,175,80,.3);border-radius:8px;color:#fff;text-decoration:none;transition:all .3s ease;cursor:pointer}.link-button:hover{background:#4caf5033;border-color:#4caf5080;transform:translate(5px)}.link-button:active{transform:translate(3px)}.link-icon{font-size:1.3rem;flex-shrink:0}.link-button span:last-child{font-size:.95rem;font-weight:500}.legend{position:absolute;bottom:150px;left:30px;background:#000c;border-radius:10px;backdrop-filter:blur(10px);z-index:100;overflow:hidden;transition:all .3s ease}.legend-toggle{background:transparent;border:none;color:#fff;padding:12px 15px;width:100%;display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-size:.95rem;font-weight:600}.legend-title-group{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.legend-title-main{font-size:.95rem;font-weight:600}.legend-title-sub{font-size:.7rem;font-weight:400;opacity:.7}.legend-toggle .toggle-icon{transition:transform .3s ease}.legend.collapsed .toggle-icon{transform:rotate(-90deg)}.legend-content{padding:0 15px 15px;max-height:300px;opacity:1;transition:all .3s ease}.legend.collapsed .legend-content{max-height:0;opacity:0;padding:0 15px}.legend-item{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-size:.85rem;gap:10px}.legend-item-left{display:flex;align-items:center;gap:10px}.legend-color{width:20px;height:20px;border-radius:3px;border:1px solid rgba(255,255,255,.3);flex-shrink:0}.legend-code{font-weight:600;min-width:25px}.legend-desc{font-size:.75rem;opacity:.8;text-align:right;white-space:nowrap}.timeline-controls{position:absolute;bottom:30px;left:50%;transform:translate(-50%);width:500px;background:#000c;padding:15px 20px;border-radius:12px;backdrop-filter:blur(10px);z-index:100}.timeline-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.timeline-label{font-size:.9rem;opacity:.8;font-weight:500}.year-display{font-size:1.5rem;font-weight:700;color:#4caf50}#year-slider{width:100%;margin:10px 0;height:8px;border-radius:4px;outline:none;background:linear-gradient(to right,#d32f2f,#ff6f00,#4caf50);-webkit-appearance:none}#year-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:#fff;cursor:pointer;box-shadow:0 2px 4px #0000004d}#year-slider::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#fff;cursor:pointer;border:none}.timeline-info{text-align:center;opacity:.8;font-size:.9rem}.filter-panel{position:absolute;top:120px;left:30px;width:280px;background:#000000d9;padding:20px;border-radius:12px;backdrop-filter:blur(10px);z-index:100;max-height:calc(100vh - 450px);overflow-y:auto;transition:all .3s cubic-bezier(.4,0,.2,1)}.filter-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.filter-header h3{font-size:1.1rem;margin:0}.filter-close{background:transparent;border:none;color:#fff;font-size:1.5rem;cursor:pointer;width:32px;height:32px;border-radius:50%;display:none;align-items:center;justify-content:center;transition:background .2s}.filter-close:hover{background:#ffffff1a}.filter-group{margin-bottom:20px}.filter-group>label{display:block;margin-bottom:10px;font-size:.9rem;font-weight:600;opacity:.9}.filter-chips{display:flex;flex-wrap:wrap;gap:8px}.filter-chips .chip{display:inline-flex;align-items:center;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:20px;padding:6px 12px;cursor:pointer;transition:all .2s;font-size:.85rem}.filter-chips .chip input{display:none}.filter-chips .chip:hover{background:#ffffff26}.filter-chips .chip input:checked+span{font-weight:700}.filter-chips .chip input:checked{~span{color:#4caf50}}.filter-chips .chip:has(input:checked){background:#4caf5033;border-color:#4caf5080}#continent-filter,#species-search{width:100%;padding:10px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;font-size:.9rem;transition:all .2s}#continent-filter{cursor:pointer}#continent-filter option{background:#1a1a2ef2;color:#fff;padding:10px;font-size:.9rem}#continent-filter:focus,#species-search:focus{outline:none;border-color:#4caf5080;background:#ffffff26}#species-search::placeholder{color:#ffffff80}.settings-panel{position:fixed;top:120px;right:20px;width:280px;background:#000000e6;padding:20px;border-radius:12px;backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);z-index:150;transition:all .3s cubic-bezier(.4,0,.2,1)}.settings-panel.hidden{opacity:0;pointer-events:none;transform:translateY(-10px)}.settings-panel h3{font-size:1.1rem;margin-bottom:20px;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.1)}.setting-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.05)}.setting-item:last-child{border-bottom:none}.setting-label{font-size:.9rem;opacity:.9}.toggle-switch{position:relative;width:50px;height:26px;background:#fff3;border-radius:13px;cursor:pointer;transition:background .3s ease}.toggle-switch.active{background:#4caf50}.toggle-switch-slider{position:absolute;top:3px;left:3px;width:20px;height:20px;background:#fff;border-radius:50%;transition:transform .3s ease}.toggle-switch.active .toggle-switch-slider{transform:translate(24px)}.simulation-panel{position:fixed;bottom:180px;right:30px;z-index:100}.simulation-toggle{background:#8b4513e6;border:1px solid rgba(255,255,255,.2);border-radius:25px;padding:12px 20px;color:#fff;font-size:.95rem;font-weight:600;cursor:pointer;backdrop-filter:blur(10px);transition:all .3s ease;display:flex;align-items:center;gap:8px;box-shadow:0 4px 12px #0000004d}.simulation-toggle:hover{background:#a0522df2;transform:translateY(-2px);box-shadow:0 6px 16px #0006}.simulation-content{position:absolute;bottom:60px;right:0;width:320px;max-height:500px;background:#000000f2;border-radius:15px;padding:20px;backdrop-filter:blur(15px);border:1px solid rgba(255,255,255,.1);overflow-y:auto;transition:all .3s cubic-bezier(.4,0,.2,1)}.simulation-content.hidden{opacity:0;pointer-events:none;transform:translateY(10px)}.simulation-content h3{font-size:1.2rem;margin-bottom:8px;color:#fff}.simulation-desc{font-size:.85rem;opacity:.7;margin-bottom:20px}.simulation-scenarios{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.scenario-card{background:#ffffff0d;border:2px solid rgba(255,255,255,.1);border-radius:12px;padding:15px;cursor:pointer;transition:all .3s ease}.scenario-card:hover{background:#ffffff1a;border-color:#ffffff4d;transform:translate(5px)}.scenario-card.active{background:#4caf5033;border-color:#4caf5080}.scenario-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.scenario-icon{font-size:1.5rem}.scenario-name{font-size:1rem;font-weight:600;color:#fff}.scenario-description{font-size:.85rem;opacity:.8;line-height:1.4}.simulation-stats{background:#ffffff0d;border-radius:10px;padding:15px;margin-bottom:15px}.simulation-stats h4{font-size:1rem;margin-bottom:12px;color:#4caf50}.stat-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.05)}.stat-item:last-child{border-bottom:none}.stat-label{font-size:.85rem;opacity:.8}.stat-value{font-size:.9rem;font-weight:600;color:#4caf50}.stat-value.negative{color:#ff6f00}.simulation-reset{width:100%;background:#d32f2f33;border:1px solid rgba(211,47,47,.5);border-radius:8px;padding:12px;color:#fff;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .3s ease}.simulation-reset:hover{background:#d32f2f4d;border-color:#d32f2fb3}.pwa-install-prompt{position:fixed;bottom:0;left:0;right:0;z-index:500;background:linear-gradient(to top,#000000f2,#000000d9);backdrop-filter:blur(20px);padding:20px;border-top:1px solid rgba(255,255,255,.1);box-shadow:0 -4px 20px #00000080;transition:transform .3s cubic-bezier(.4,0,.2,1)}.pwa-install-prompt.hidden{transform:translateY(100%)}.pwa-prompt-content{max-width:600px;margin:0 auto;position:relative;text-align:center}.pwa-prompt-close{position:absolute;top:-10px;right:-10px;background:#ffffff1a;border:none;border-radius:50%;color:#fff;font-size:1.5rem;width:32px;height:32px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.pwa-prompt-close:hover{background:#fff3;transform:rotate(90deg)}.pwa-prompt-icon{font-size:3rem;margin-bottom:10px}.pwa-prompt-content h3{font-size:1.3rem;margin-bottom:8px;color:#fff}.pwa-prompt-content p{font-size:.95rem;opacity:.8;margin-bottom:20px}.pwa-prompt-buttons{display:flex;gap:12px;justify-content:center}.pwa-install-btn,.pwa-later-btn{padding:12px 30px;border-radius:25px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .3s ease;border:none}.pwa-install-btn{background:linear-gradient(135deg,#4caf50,#45a049);color:#fff;box-shadow:0 4px 15px #4caf5066}.pwa-install-btn:hover{background:linear-gradient(135deg,#45a049,#3d8b40);box-shadow:0 6px 20px #4caf5099;transform:translateY(-2px)}.pwa-later-btn{background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.2)}.pwa-later-btn:hover{background:#ffffff26}.loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;z-index:300;background:#000000e6;padding:30px;border-radius:15px}.loading.hidden{display:none}.spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.1);border-top:4px solid #ffffff;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 15px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}*:focus{outline:2px solid #4CAF50;outline-offset:2px}*:focus:not(:focus-visible){outline:none}*:focus-visible{outline:2px solid #4CAF50;outline-offset:2px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #4CAF50;outline-offset:2px;box-shadow:0 0 0 4px #4caf5033}.skip-link{position:absolute;top:-40px;left:0;background:#4caf50;color:#fff;padding:8px 16px;text-decoration:none;z-index:1000;border-radius:0 0 4px}.skip-link:focus{top:0}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media (prefers-contrast: high){*{border-color:currentColor!important}.species-label,.legend,.filter-panel,.info-panel{border-width:2px!important}}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#ffffff0d}::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#ffffff4d}@media (min-width: 1920px){.header{padding:20px 40px;border-radius:12px}.header h1{font-size:2.5rem}.subtitle{font-size:1.1rem}.version-badge{font-size:.85rem;padding:6px 14px}.language-toggle{padding:6px 12px}.lang-option{font-size:.85rem;padding:6px 10px}.info-panel{width:450px;padding:35px;font-size:1.05rem}.info-panel h2{font-size:2rem}.info-section h3{font-size:1.3rem}.link-button{padding:16px 20px;font-size:1.05rem}.link-icon{font-size:1.5rem}.legend{bottom:180px;left:40px;font-size:1rem}.legend-toggle{padding:15px 20px;font-size:1.05rem}.legend-title-main{font-size:1.05rem}.legend-title-sub{font-size:.8rem}.legend-item{font-size:.95rem;margin-bottom:10px}.legend-color{width:24px;height:24px}.timeline-controls{width:600px;padding:20px 25px;border-radius:12px}.timeline-label{font-size:1.1rem}.year-display{font-size:1.8rem}.filter-panel{width:380px;padding:30px 25px;font-size:1rem}.filter-header h3{font-size:1.4rem}.species-label{font-size:13px;padding:4px 8px}.geo-label{font-size:1.1em}}@media (min-width: 1440px) and (max-width: 1919px){.header h1{font-size:2.2rem}.subtitle{font-size:1rem}.info-panel{width:420px;padding:32px}.legend{bottom:170px;left:35px}.timeline-controls{width:580px;padding:18px 22px}.filter-panel{width:360px}}@media (min-width: 1024px) and (max-width: 1439px){.header h1{font-size:1.8rem}.info-panel{width:380px;padding:28px}.legend{bottom:160px}.timeline-controls{width:520px}.filter-panel{width:340px}}@media (min-width: 768px) and (max-width: 1023px){.header{padding:12px 25px}.header h1{font-size:1.5rem}.subtitle{font-size:.85rem}.info-panel{width:350px;padding:25px;right:20px;top:80px}.legend{bottom:140px;left:20px}.timeline-controls{width:450px;bottom:20px}.filter-panel{width:320px;padding:25px 20px}.menu-toggle{display:none}.filter-panel{position:absolute;left:20px;top:20px;height:auto;max-height:calc(100vh - 200px)}}@media (max-width: 768px){.menu-toggle{display:flex}.header{top:10px;left:50%;padding:10px 20px;max-width:calc(100% - 80px)}.header h1{font-size:1.2rem;margin-bottom:3px}.subtitle{font-size:.7rem}.version-badge{font-size:.6rem;padding:3px 8px;top:8px;right:8px}.language-toggle{top:70px;right:10px;padding:4px 8px}.lang-option{padding:3px 6px;font-size:.65rem}.lang-divider{font-size:.65rem}.settings-toggle{top:110px;right:10px;padding:6px 10px;font-size:1rem}.settings-panel{top:150px;right:10px;width:260px;padding:15px}.settings-panel h3{font-size:1rem;margin-bottom:15px}.setting-item{padding:10px 0}.setting-label{font-size:.85rem}.toggle-switch{width:45px;height:24px}.toggle-switch-slider{width:18px;height:18px}.toggle-switch.active .toggle-switch-slider{transform:translate(21px)}.simulation-panel{bottom:120px;right:10px}.simulation-toggle{padding:10px 16px;font-size:.85rem}.simulation-content{width:calc(100vw - 20px);max-width:300px;bottom:55px;right:0;max-height:400px;padding:15px}.simulation-content h3{font-size:1.05rem}.scenario-card{padding:12px}.scenario-icon{font-size:1.3rem}.scenario-name{font-size:.9rem}.scenario-description{font-size:.8rem}.simulation-stats{padding:12px}.stat-item{padding:6px 0}.stat-label,.stat-value{font-size:.8rem}.info-panel{inset:auto auto 0 0;width:100%;max-height:80vh;border-radius:20px 20px 0 0;transform:none;padding:30px 20px;overflow-y:auto;-webkit-overflow-scrolling:touch}.info-panel.hidden{bottom:-100%;opacity:1}.info-panel h2{font-size:1.5rem;margin-bottom:8px}.scientific-name{font-size:.9rem;margin-bottom:12px}.status-badge{font-size:.95rem;padding:6px 18px;margin-bottom:25px}.info-section{margin-bottom:25px}.info-section h3{font-size:1.15rem;margin-bottom:12px}.info-section p{font-size:.95rem;line-height:1.7}.link-button{padding:16px 20px;font-size:1.05rem;min-height:56px}.link-icon{font-size:1.5rem}.link-button span:last-child{font-size:1rem}.panel-handle{display:block;position:absolute;top:8px;left:50%;transform:translate(-50%);width:40px;height:4px;background:#ffffff4d;border-radius:2px}.close-btn{top:15px;right:15px;width:40px;height:40px;font-size:1.8rem}.legend{bottom:110px;left:10px;font-size:.8rem}.legend-toggle{padding:10px 12px;font-size:.85rem}.legend-item{margin-bottom:6px;font-size:.75rem}.legend-color{width:16px;height:16px;margin-right:8px}.timeline-controls{bottom:10px;width:calc(100% - 20px);padding:12px 15px}.timeline-header{margin-bottom:8px}.timeline-label{font-size:.85rem}.year-display{font-size:1.3rem}.timeline-info{font-size:.8rem}.filter-panel{position:fixed;top:0;left:-320px;width:280px;height:100vh;max-height:100vh;border-radius:0 15px 15px 0;padding:80px 20px 20px;transition:left .3s cubic-bezier(.4,0,.2,1)}.filter-panel.open{left:0;box-shadow:4px 0 20px #00000080}.filter-close{display:flex}.species-label{font-size:12px;padding:4px 8px}#year-slider{height:12px}#year-slider::-webkit-slider-thumb{width:24px;height:24px}#year-slider::-moz-range-thumb{width:24px;height:24px}.filter-chips .chip{padding:10px 16px;font-size:.95rem;min-height:44px}.filter-chips .chip input[type=checkbox]{width:20px;height:20px}select,input[type=text]{padding:14px;font-size:1.05rem;min-height:50px}.filter-group{margin-bottom:25px}.filter-group label{font-size:1rem;margin-bottom:12px}}@media (max-width: 480px){.header h1{font-size:1rem}.subtitle{font-size:.65rem}.legend{bottom:100px;left:5px}.timeline-controls{width:calc(100% - 10px);padding:10px}.year-display{font-size:1.1rem}.filter-panel{width:260px;left:-280px}}@media (max-width: 812px) and (orientation: landscape){.header{top:5px;padding:5px 15px}.header h1{font-size:.95rem}.subtitle{display:none}.legend{bottom:70px;left:5px}.timeline-controls{bottom:5px;padding:8px 12px}.info-panel{max-height:65vh}.filter-panel{padding:60px 20px 20px}}@media (hover: none) and (pointer: coarse){*{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}button{min-width:44px;min-height:44px}}
