*{margin:0;padding:0;box-sizing:border-box}body{font-family:Arial,sans-serif;overflow:hidden;background-color:#2a2a2a;align-items:center;min-height:100vh;margin:0;font-size:16px;font-weight:700;letter-spacing:1px;text-transform:uppercase;text-shadow:-1.5px -1.5px 0 #000,1.5px -1.5px 0 #000,-1.5px 1.5px 0 #000,1.5px 1.5px 0 #000}.app-container{display:flex;flex-direction:row;height:100vh}.left-panel{background-color:#333;color:#fff;width:200px;position:relative;transition:width .3s ease;overflow-x:clip;overflow-clip-margin:40px;display:flex;flex-direction:column}.left-panel.collapsed{width:60px}.collapse-btn{position:absolute;top:10px;right:-34px;background-color:#444;color:#fff;width:16px;height:16px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;z-index:10;padding:10px!important}.language-selector{padding:50px 10px 0;display:flex;flex-wrap:wrap;gap:8px;max-width:200px}.language-flag{cursor:pointer;font-size:20px;transition:all .2s ease;border-radius:3px;padding:2px}.language-flag:hover{transform:scale(1.15)}.language-flag.selected{box-shadow:0 0 8px 2px #ffd764cc,0 0 12px 4px #fff9;border-radius:4px}.left-panel.collapsed .language-selector{display:none}.left-panel.collapsed .collapse-btn{transform:rotate(180deg)}.left-panel.collapsed .controls-group button:after{content:attr(data-short)}.left-panel.collapsed .controls-group button{font-size:18px;padding:8px}.left-panel.collapsed .controls-group button span{display:none}.controls{padding:10px;display:flex;flex-direction:column;gap:15px;align-items:stretch;flex:1;overflow-y:auto}.sk83-button{font-size:16px;font-weight:700;letter-spacing:1px;text-transform:uppercase;padding:12px 8px;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #0000004d,inset 0 1px #ffffff1a;background-color:#1f3c1f;border-top:2px solid #4f704f;border-left:2px solid #4f704f;border-bottom:2px solid #000;border-right:2px solid #000;color:#fff;text-shadow:-1.5px -1.5px 0 #000,1.5px -1.5px 0 #000,-1.5px 1.5px 0 #000,1.5px 1.5px 0 #000;display:flex;align-items:center;justify-content:center}.sk83-button:hover{background-color:#888}.controls-group{display:flex;flex-direction:column;gap:5px}.entity-filters{margin-top:15px}.entity-filters>div{padding-bottom:10px}.filter-title{color:#fff;font-weight:700;margin-bottom:10px;font-size:14px;text-transform:uppercase;letter-spacing:1px}.filter-title-short,.left-panel.collapsed .filter-title span:first-child{display:none}.left-panel.collapsed .filter-title-short{display:inline}.filter-list{display:flex;flex-direction:column;gap:8px}.filter-item{display:flex;align-items:center;gap:8px;cursor:pointer;padding:4px;border-radius:3px;transition:background-color .2s ease;min-height:28px}.filter-item:hover{background-color:#ffffff1a}.filter-item input[type=checkbox]{width:16px;height:16px;cursor:pointer;flex-shrink:0;align-self:flex-start;margin-top:2px}.filter-item img{width:20px;height:20px;object-fit:contain;flex-shrink:0;align-self:flex-start}.filter-item label{color:#fff;font-size:12px;cursor:pointer;user-select:none;flex:1;word-break:break-word;line-height:1.3}.left-panel.collapsed .filter-item label{display:none}.left-panel.collapsed .filter-item{justify-content:center;gap:4px}.map-container{flex:1;position:relative;overflow:hidden;background-color:#293527;cursor:url("./cursor_blue_2-UCQB33S2.ico"),default}.map-container.dragging{cursor:grabbing}.map-viewport{position:relative;width:fit-content;height:fit-content;transform-origin:0 0;transition:transform .2s ease-out}.map-viewport.no-transition{transition:none}#mapImage{display:block;max-width:none;max-height:none;user-select:none;pointer-events:none}.entities-layer{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.entity{position:absolute;pointer-events:auto;cursor:pointer;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center}.entity img{display:block;user-select:none}.entity:hover{transform:translate(-50%,-50%) scale(1.2);z-index:10}.entity-tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background-color:#1f3c1faa;color:#fff;padding:5px 8px;border-radius:3px;font-size:12px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .2s;border:2px solid #4f704f;max-width:400px}.tooltip-main{margin-bottom:2px}.tooltip-spoiler{font-style:italic;font-size:11px!important;color:#ccc;white-space:normal;margin-top:4px;padding-top:4px;border-top:1px solid #4f704f}.entity:hover .entity-tooltip{opacity:1}.loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#666;font-size:18px}.coordinates-display{position:absolute;bottom:10px;right:10px;background-color:#1f3c1faa;color:#fff;padding:8px 12px;border-radius:4px;font-family:monospace;pointer-events:none;z-index:1000;opacity:0;transition:opacity .2s ease;user-select:none;border:2px solid #4f704f;font-size:16px;font-weight:700;letter-spacing:1px}.github-link{padding:10px;text-align:center;margin-top:auto;display:flex;flex-direction:column;gap:8px}.github-link a{color:#fff;text-decoration:none;font-size:14px;text-transform:uppercase;letter-spacing:1px;font-weight:700;transition:opacity .2s ease}.github-link a:hover{opacity:.7}.left-panel.collapsed .github-link{display:none}.app-version{font-size:10px;color:#ccc;margin-top:5px;text-transform:none;letter-spacing:0;font-weight:400}@media (max-width: 768px){.left-panel:not(.expanded){width:60px}.left-panel:not(.expanded) .language-selector{display:none}.left-panel:not(.expanded) .collapse-btn{transform:rotate(180deg)}.left-panel:not(.expanded) .controls-group button:after{content:attr(data-short)}.left-panel:not(.expanded) .controls-group button{font-size:18px;padding:8px}.left-panel:not(.expanded) .controls-group button span{display:none}.left-panel:not(.expanded) .filter-title span:first-child{display:none}.left-panel:not(.expanded) .filter-title-short{display:inline}.left-panel:not(.expanded) .filter-item label{display:none}.left-panel:not(.expanded) .filter-item{justify-content:center;gap:4px}.left-panel:not(.expanded) .github-link{display:none}}.modal-overlay{position:fixed;inset:0;background-color:#000c;display:none;justify-content:center;align-items:center;z-index:10000}.modal-overlay.show{display:flex}.modal-content{background-color:#1f3c1f;border:3px solid #4f704f;border-radius:8px;padding:20px;max-width:50vw;width:90%;max-height:50vh;overflow-y:auto;position:relative;color:#fff;font-family:Arial,sans-serif;box-shadow:0 4px 20px #00000080}.modal-content pre{white-space:pre-wrap;word-wrap:break-word;margin:0}.modal-close{position:absolute;top:10px;right:15px;background:none;border:none;font-size:24px;color:#ccc;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center}.modal-close:hover{color:#fff}.modal-share{position:absolute;top:10px;right:50px;background:none;border:none;font-size:24px;color:#ccc;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;filter:grayscale(100%)}.modal-share:hover{color:#fff;filter:grayscale(0%)}.modal-title{margin:0 30px 15px 0;font-size:20px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:#fff;text-shadow:-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000,1px 1px 0 #000}.modal-description{margin:0 0 15px;font-size:14px;line-height:1.5;color:#ddd}.modal-spoiler{margin-top:15px}.modal-spoiler hr{border:none;border-top:1px solid #4f704f;margin:10px 0}.spoiler-toggle{background:#3a5a3a;border:1px solid #4f704f;color:#ddd;padding:5px 12px;cursor:pointer;font-size:13px;border-radius:3px;margin-bottom:10px}.spoiler-toggle:hover{background:#4f704f}.spoiler-hidden{display:none}.modal-spoiler p{font-size:13px;font-style:italic;color:#bbb;line-height:1.4;margin:0}.modal-coordinates{margin-top:15px;padding-top:10px;border-top:1px solid #4f704f;font-family:monospace;font-size:12px;color:#999;text-align:left}.toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%);background-color:#1f3c1f;border:2px solid #4f704f;color:#fff;padding:12px 24px;border-radius:4px;font-size:14px;font-weight:700;letter-spacing:1px;text-transform:uppercase;text-shadow:-1.5px -1.5px 0 #000,1.5px -1.5px 0 #000,-1.5px 1.5px 0 #000,1.5px 1.5px 0 #000;box-shadow:0 4px 12px #00000080;z-index:20000;opacity:0;transition:opacity .3s ease;pointer-events:none}.toast.show{opacity:1}
