html, body {
    overflow-y: auto;
    -ms-overflow-style: none;
    scrollbar-width: none;
    bottom: 0.5px;
}
html::-webkit-scrollbar, body::-webkit-scrollbar {
    display: none;
}

.pnlm-panorama-info {
    position:absolute;
    bottom:4px;
    background-color:rgba(48, 114, 255, 0.7);
    border-radius:0 3px 3px 0;
    padding-right:10px;
    color:#fff;
    text-align:left;
    display:none;
    z-index:2;
    -webkit-transform:translateZ(9999px);
    transform:translateZ(9999px)
}
.pnlm-title-box {
    position: absolute;
    bottom: 30px;
    left: 30px;
    padding: 8px 16px;
    background-color: rgba(16, 60, 255,0.7);
    border-radius: 12px;
    color: white;
    font-family: 'Quicksand', sans-serif;
    font-size: 1.125rem;
    font-weight: 500;
    backdrop-filter: blur(8px);
    transition: all 0.3s ease;
    z-index: 10;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
}

.pnlm-author-box{position:relative;font-size:12px;display:table;padding-left:5px}
.pnlm-load-box {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 280px;
    height: 150px;
    margin: -75px 0 0 -140px;
    background: rgba(255, 255, 255, 0.15);
    border: 0px solid rgba(255, 255, 255, 0.2);
    border-radius: 16px;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    text-align: center;
    font-size: 20px;
    font-family: 'Quicksand', sans-serif;
    color: white;
    display: none;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
}
.pnlm-load-box p{margin:20px 0;text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);}

.pnlm-lbox{position:absolute;top:50%;left:50%;width:20px;height:20px;margin:-10px 0 0 -10px;display:none}
.pnlm-loading {
    width: 30px;
    height: 30px;
    margin: 20px auto;
    border: 3px solid rgba(255, 255, 255, 0.2);
    border-top: 3px solid rgba(16, 60, 255, 0.8);
    border-radius: 50%;
    animation: loadingSpin 1s linear infinite;
}
@keyframes loadingSpin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}
.pnlm-lbar {
    width: 80%;
    margin: 0 auto;
    border: none;
    height: 8px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 4px;
    overflow: hidden;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}
.pnlm-lbar-fill {
    background: linear-gradient(
        90deg,
        rgba(96, 165, 250, 0.7),
        rgba(16, 60, 255, 0.8)
    );
    height: 100%;
    border-radius: 4px;
    transition: width 0.2s ease;
    box-shadow: 0 0 10px rgba(16, 60, 255, 0.3);
}
.pnlm-lmsg {
    font-size: 14px;
    color: rgba(255, 255, 255, 0.9);
    margin-top: 12px;
    font-weight: 500;
}
.pnlm-load-button{position:absolute;top:50%;left:50%;width:200px;height:100px;margin:-50px 0 0 -100px;background-color:rgba(0,0,0,.7);border-radius:3px;text-align:center;font-size:20px;display:table;color:#fff;cursor:pointer}
.pnlm-load-button:hover{background-color:rgba(0,0,0,.8)}
.pnlm-load-button p{display:table-cell;vertical-align:middle}
.pnlm-info-box{font-size:15px;position:absolute;top:50%;left:50%;width:200px;height:150px;margin:-75px 0 0 -100px;background-color:#000;border-radius:3px;display:table;text-align:center;color:#fff;table-layout:fixed}
.pnlm-info-box a,.pnlm-author-box a{color:#fff;word-wrap:break-word;overflow-wrap:break-word}
.pnlm-info-box p{display:table-cell;vertical-align:middle;padding:0 5px 0 5px}
.pnlm-error-msg{display:none}
.pnlm-about-msg{font-size:11px;line-height:11px;color:#fff;padding:5px 8px 5px 8px;background:rgba(0,0,0,0.7);border-radius:3px;position:absolute;top:50px;left:50px;display:none;opacity:0;-moz-transition:opacity .3s ease-in-out;-webkit-transition:opacity .3s ease-in-out;-o-transition:opacity .3s ease-in-out;-ms-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;z-index:1}
.pnlm-about-msg a:link,.pnlm-about-msg a:visited{color:#fff}
.pnlm-about-msg a:hover,.pnlm-about-msg a:active{color:#eee}
.pnlm-hotspot-base{position:absolute;visibility:hidden;cursor:default;vertical-align:middle;top:0;z-index:1}
.pnlm-hotspot{height:26px;width:26px;border-radius:13px}
.pnlm-hotspot:hover{background-color:rgba(255,255,255,0.2)}
.pnlm-hotspot.pnlm-info{background-position:0 -104px}
.pnlm-hotspot.pnlm-scene{background-position:0 -130px}
.pnlm-hotspot-base.pnlm-scene,
.pnlm-hotspot-base.pnlm-info {
    background: rgba(255, 255, 255, 0.05);
    border: 0px solid rgba(255, 255, 255, 0.2);
    border-radius: 9999px;
    padding: 1rem;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5);
    transition: all 0.2s ease;
}

.pnlm-hotspot-base.pnlm-scene:hover,
.pnlm-hotspot-base.pnlm-info:hover {
    transform: scale(1.1);
    background: rgba(16, 60, 255, 0.25);
    border-color: rgba(255, 255, 255, 0.3);
    box-shadow: 0 8px 32px rgba(16, 60, 255, 0.3);
}

.high-contrast .pnlm-hotspot-base.pnlm-scene,
.high-contrast .pnlm-hotspot-base.pnlm-info {
    background: #000000;
    border: 3px solid #0066FF;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    box-shadow: none;
}

.high-contrast .pnlm-hotspot-base.pnlm-scene:hover,
.high-contrast .pnlm-hotspot-base.pnlm-info:hover {
    background: #333333;
}

div.pnlm-tooltip span {
    visibility: hidden;
    position: absolute;
    border-radius: 16px;
    background: rgba(16, 60, 255, 0.55);
    border: 0px solid rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    color: white;
    text-align: center;
    max-width: 200px;
    left: 1px;
    bottom: 70px; /*55 */
    padding: 12px 20px;
    margin-left: -220px;
    cursor: default;
    font-family: 'Quicksand', sans-serif;
    font-size: 1.125rem;
    font-weight: 500;
    /*box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);*/
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    transition: opacity 0.3s ease, transform 0.1s ease;
    opacity: 0;
    transform: translateY(10px);
}

div.pnlm-tooltip:hover span {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
}

div.pnlm-tooltip:hover span:after {
    content: '';
    position: absolute;
    width: 0;
    height: 0;
    border-width: 10px;
    border-style: solid;
    border-color: rgba(16, 60, 255, 0.25) transparent transparent transparent;
    bottom: -20px;
    left: -11px;
    margin: 0 50%;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.pnlm-compass{position:absolute;width:50px;height:50px;right:4px;bottom:40px;border-radius:25px;background-image:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20height%3D%2250%22%20width%3D%2250%22%3E%0A%3Cpath%20d%3D%22m24.5078%206-3.2578%2018h7.5l-3.25781-18h-0.984376zm-3.2578%2020%203.2578%2018h0.9844l3.2578-18h-7.5zm1.19531%200.9941h5.10938l-2.5547%2014.1075-2.5547-14.1075z%22%2F%3E%0A%3C%2Fsvg%3E%0A');cursor:default;display:none}.pnlm-world{position:absolute;left:50%;top:50%}.pnlm-face{position:absolute;-webkit-transform-origin:0 0;transform-origin:0 0}.pnlm-dragfix,.pnlm-preview-img{position:absolute;height:100%;width:100%}.pnlm-preview-img{background-size:cover;background-position:center}
.pnlm-lbar{width:150px;margin:0 auto;border:#fff 0px solid;height:6px}
.pnlm-lbar-fill{background:#fff;height:100%;width:0}
.pnlm-lmsg{font-size:12px}
.pnlm-fade-img{position:absolute;top:0;left:0}
.pnlm-pointer{cursor:pointer}
.high-contrast .pnlm-controls,
.high-contrast #searchDiv button,
.high-contrast #accessibilityMenu button,
.high-contrast #closeErrorModal,
.high-contrast #welcomeButton,
.high-contrast #accessibilityBtn {
    border: 3px solid #0066FF !important;
    color: #FFFF00 !important;
    background-color: #000000 !important;
}
.high-contrast .pnlm-title-box {
    border: 3px solid #0066FF !important;
    background-color: rgba(0, 0, 0, 0.9) !important;
    color: #FFFF00 !important;
}
.high-contrast #searchInput {
    border: 3px solid #0066FF !important;
    background-color: #000000 !important;
    color: #FFFF00 !important;
}
.high-contrast #accessibilityMenu {
    background-color: #000000 !important;
    border: 3px solid #0066FF !important;
}
.high-contrast label,
.high-contrast #accessibilityMenu h3,
.high-contrast .pnlm-load-box,
.high-contrast div.pnlm-tooltip span {
    color: #FFFF00 !important;
}
.high-contrast #accessibilityBtn img {
    filter: brightness(0) saturate(100%) invert(82%) sepia(71%) saturate(639%) hue-rotate(359deg) brightness(105%) contrast(103%);
}
.high-contrast div.pnlm-tooltip span {
    background-color: rgba(0, 0, 0, 0.9) !important;
    border: 0px solid #0066FF !important;
}
.high-contrast .pnlm-hotspot {
    border: 2px solid #0066FF !important;
    background-color: #000000 !important;
}
.high-contrast {
    filter: none;
}
.high-contrast .pnlm-container {
    background: #000000;
}
.high-contrast .pnlm-zoom-in,
.high-contrast .pnlm-zoom-out {
    background-color: #000000 !important;
    border: 3px solid #0066FF !important;
}

.high-contrast .pnlm-zoom-in:before,
.high-contrast .pnlm-zoom-out:before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 12px;
    height: 2px;
    background-color: #FFFF00;
}

.high-contrast .pnlm-zoom-in:after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 2px;
    height: 12px;
    background-color: #FFFF00;
}
.high-contrast .pnlm-load-box {
    background: #000000;
    border: 3px solid #0066FF;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}
.high-contrast .pnlm-lbar {
    background: #000000;
    border: 2px solid #0066FF;
}
.high-contrast .pnlm-lbar-fill {
    background: #FFFF00;
    box-shadow: none;
}
.high-contrast .pnlm-loading {
    border-color: #0066FF;
    border-top-color: #FFFF00;
}
.pnlm-compass {
    display: none !important;
}
.text-scalable {
    transition: font-size 0.2s ease;
}
body[data-text-scale="80"] .text-scalable { font-size: 80%; }
body[data-text-scale="90"] .text-scalable { font-size: 90%; }
body[data-text-scale="100"] .text-scalable { font-size: 100%; }
body[data-text-scale="110"] .text-scalable { font-size: 110%; }
body[data-text-scale="120"] .text-scalable { font-size: 120%; }
body[data-text-scale="130"] .text-scalable { font-size: 130%; }
body[data-text-scale="140"] .text-scalable { font-size: 140%; }
body[data-text-scale="150"] .text-scalable { font-size: 150%; }
.pnlm-title-box,
.pnlm-tooltip span,
#accessibilityMenu label,
#accessibilityMenu h3,
#searchInput,
#searchDiv button,
#welcomeScreen h1,
#welcomeScreen h3,
#errorModal h3,
#errorModal p,
.pnlm-load-box {
    transition: font-size 0.2s ease;
}
body[data-text-scale="80"] .pnlm-tooltip span { font-size: 80%; }
body[data-text-scale="90"] .pnlm-tooltip span { font-size: 90%; }
body[data-text-scale="100"] .pnlm-tooltip span { font-size: 100%; }
body[data-text-scale="110"] .pnlm-tooltip span { font-size: 110%; }
body[data-text-scale="120"] .pnlm-tooltip span { font-size: 120%; }
body[data-text-scale="130"] .pnlm-tooltip span { font-size: 130%; }
body[data-text-scale="140"] .pnlm-tooltip span { font-size: 140%; }
body[data-text-scale="150"] .pnlm-tooltip span { font-size: 150%; }

body[data-text-scale="80"] .pnlm-title-box { font-size: 80%; }
body[data-text-scale="90"] .pnlm-title-box { font-size: 90%; }
body[data-text-scale="100"] .pnlm-title-box { font-size: 100%; }
body[data-text-scale="110"] .pnlm-title-box { font-size: 110%; }
body[data-text-scale="120"] .pnlm-title-box { font-size: 120%; }
body[data-text-scale="130"] .pnlm-title-box { font-size: 130%; }
body[data-text-scale="140"] .pnlm-title-box { font-size: 140%; }
body[data-text-scale="150"] .pnlm-title-box { font-size: 150%; }

.text-scalable,
input.text-scalable,
button.text-scalable,
.pnlm-title-box,
.pnlm-tooltip span,
#accessibilityMenu label,
#accessibilityMenu h3,
#searchInput,
#searchDiv button,
#welcomeScreen h1,
#welcomeScreen h3,
#errorModal h3,
#errorModal p,
.pnlm-load-box,
.pnlm-load-button,
.pnlm-lmsg,
div.pnlm-tooltip span,
.pnlm-tooltip,
.pnlm-panorama-info,
.pnlm-title-box,
.pnlm-author-box,
.pnlm-load-box p,
.pnlm-info-box {
    transition: font-size 0.2s ease;
}
body[data-text-scale="80"] .text-scalable,
body[data-text-scale="80"] input.text-scalable,
body[data-text-scale="80"] button.text-scalable,
body[data-text-scale="80"] #searchInput,
body[data-text-scale="80"] #searchDiv button { font-size: 80%; }


body[data-text-scale="90"] .text-scalable,
body[data-text-scale="90"] input.text-scalable,
body[data-text-scale="90"] button.text-scalable,
body[data-text-scale="90"] #searchInput,
body[data-text-scale="90"] #searchDiv button { font-size: 90%; }

body[data-text-scale="100"] .text-scalable,
body[data-text-scale="100"] input.text-scalable,
body[data-text-scale="100"] button.text-scalable,
body[data-text-scale="100"] #searchInput,
body[data-text-scale="100"] #searchDiv button { font-size: 100%; }

body[data-text-scale="110"] .text-scalable,
body[data-text-scale="110"] input.text-scalable,
body[data-text-scale="110"] button.text-scalable,
body[data-text-scale="110"] #searchInput,
body[data-text-scale="110"] #searchDiv button { font-size: 110%; }

body[data-text-scale="120"] .text-scalable,
body[data-text-scale="120"] input.text-scalable,
body[data-text-scale="120"] button.text-scalable,
body[data-text-scale="120"] #searchInput,
body[data-text-scale="120"] #searchDiv button { font-size: 120%; }

body[data-text-scale="130"] .text-scalable,
body[data-text-scale="130"] input.text-scalable,
body[data-text-scale="130"] button.text-scalable,
body[data-text-scale="130"] #searchInput,
body[data-text-scale="130"] #searchDiv button { font-size: 130%; }

body[data-text-scale="140"] .text-scalable,
body[data-text-scale="140"] input.text-scalable,
body[data-text-scale="140"] button.text-scalable,
body[data-text-scale="140"] #searchInput,
body[data-text-scale="140"] #searchDiv button { font-size: 140%; }

body[data-text-scale="150"] .text-scalable,
body[data-text-scale="150"] input.text-scalable,
body[data-text-scale="150"] button.text-scalable,
body[data-text-scale="150"] #searchInput,
body[data-text-scale="150"] #searchDiv button { font-size: 150%; }
input::placeholder {
    transition: all 0.2s ease;
}
body[data-text-scale="80"] input::placeholder { font-size: 80%; }
body[data-text-scale="90"] input::placeholder { font-size: 90%; }
body[data-text-scale="100"] input::placeholder { font-size: 100%; }
body[data-text-scale="110"] input::placeholder { font-size: 110%; }
body[data-text-scale="120"] input::placeholder { font-size: 120%; }
body[data-text-scale="130"] input::placeholder { font-size: 130%; }
body[data-text-scale="140"] input::placeholder { font-size: 140%; }
body[data-text-scale="150"] input::placeholder { font-size: 150%; }

.high-contrast .pnlm-load-box {
    background-color: #000000 !important;
    border: 3px solid #0066FF !important;
    color: #FFFF00 !important;
}

.high-contrast .pnlm-lbar {
    border-color: #0066FF !important;
    background-color: #000000 !important;
}

.high-contrast .pnlm-lbar-fill {
    background-color: #FFFF00 !important;
}

.high-contrast .pnlm-lmsg {
    color: #FFFF00 !important;
    font-weight: bold;
}

.high-contrast .pnlm-loading {
    background-color: #FFFF00 !important;
}

.pnlm-map-button {
    position: absolute;
    top: 17px;
    left: 40px;
    background-color: #3B82F6;
    border: none;
    border-radius: 0.75rem;
    padding: 0.5rem 1rem;
    cursor: pointer;
    z-index: 2;
    font-size: 1.125rem;
    font-weight: 600;
    font-family: 'Quicksand', sans-serif;
    transition: all 0.3s ease;
    color: white;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

.pnlm-map-button:hover {
    background-color: #2563EB;
    transform: translateY(-1px);
    box-shadow: 0 2px 4px rgba(0,0,0,0.15);
}
.high-contrast .pnlm-map-button {
    background-color: #000000 !important;
    border: 3px solid #0066FF !important;
    color: #FFFF00 !important;
    font-weight: bold !important;
}

.high-contrast .pnlm-map-button:hover {
    background-color: #333333 !important;
}

.pnlm-map-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.7);
    backdrop-filter: blur(8px);
    z-index: 999;
    display: none;
    justify-content: center;
    align-items: center;
    padding: 20px;
    flex-direction: column;
    gap: 20px;
}

.pnlm-map-container {
    position: relative;
    max-width: 90%;
    max-height: 90%;
    border: 4px solid #3B82F6;
    border-radius: 12px;
    overflow: hidden;
}

.high-contrast .pnlm-map-container {
    border-color: #0066FF !important;
}

.pnlm-map-container img {
    max-width: 100%;
    max-height: 90vh;
    object-fit: contain;
}

.pnlm-map-close {
    display: none;
}

.high-contrast .pnlm-map-button,
.high-contrast .pnlm-map-close {
    background-color: #000000 !important;
    border: 3px solid #0066FF !important;
    color: #FFFF00 !important;
}

.pnlm-map-hint {
    color: white;
    font-family: 'Quicksand', sans-serif;
    font-size: 1.125rem;
    font-weight: 500;
    text-align: center;
}

.high-contrast .pnlm-map-hint {
    color: #FFFF00 !important;
}

.quick-access-menu.blurred {
    filter: blur(5px);
    pointer-events: none;
    opacity: 0.7;
    transition: all 0.3s ease;
}

.quick-access-button:hover {
    background: rgba(16, 60, 255, 0.356);
    transform: translateY(-2px);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15);
}

.quick-access-menu {
  position: absolute;
  top: 70px;
  right: 16px;
  z-index: 50;
  width: 240px;

  overflow: hidden;
  border-radius: 20px;
  transition: all 0.3s ease;
}
.quick-access-button {
    width: 100%;
    padding: 14px 20px;
    background: rgba(16, 60, 255, 0.15);
    color: white;
    font-family: 'Quicksand', sans-serif;
    font-weight: 600;
    cursor: pointer;
    backdrop-filter: blur(12px);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
    margin: 0;
    border-radius: 20px 20px 0 0;
    transition: all 0.3s ease;
}

.quick-access-content {
    display: none;
    position: relative;
    background: rgba(145, 145, 145, 0.1);
    backdrop-filter: blur(16px);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
    border-radius: 0 0 20px 20px;
    max-height: 70vh;
    overflow-y: auto;
    overflow-x: hidden;
    opacity: 0;
    transform: translateY(-10px);
    pointer-events: none;
    transition: all 0.3s ease;
}

.quick-access-content.show {
    display: block;
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

.quick-access-item {
    width: calc(100% - 32px);
    margin: 4px 16px;
    box-sizing: border-box;
    padding: 12px 16px;
    text-align: center;
    font-family: 'Quicksand', sans-serif;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.9);
    background: rgba(255, 255, 255, 0.05);
    border-radius: 12px;
    transition: all 0.3s ease;
}

.quick-access-item:hover {
    background: rgba(16, 60, 255, 0.15);
    color: white;
    transform: translateX(4px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.quick-access-content::-webkit-scrollbar {
        width: 6px;
}

.quick-access-content::-webkit-scrollbar-track {
        background: rgba(255, 255, 255, 0.1);
        border-radius: 10px;
}

.quick-access-content::-webkit-scrollbar-thumb {
        background: rgba(16, 60, 255, 0.3);
        border-radius: 10px;
        backdrop-filter: blur(4px);
        -webkit-backdrop-filter: blur(4px);
}

.quick-access-content::-webkit-scrollbar-thumb:hover {
        background: rgba(16, 60, 255, 0.4);
}

.quick-access-item:hover {
        background: rgba(16, 60, 255, 0.15);
        color: white;
        transform: translateX(4px);
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.quick-access-section-title {
    display: block;
    width: 100%;
    box-sizing: border-box;
    margin: 0;
    padding: 16px 20px;
    font-weight: 700;
    color: rgba(255,255,255,0.95);
    background: rgba(16,60,255,0.15);
    font-family: 'Quicksand', sans-serif;
    font-size: 0.95rem;
    letter-spacing: 0.025em;
    text-shadow: 0 2px 4px rgba(0,0,0,0.1);
    backdrop-filter: blur(8px);
}

.high-contrast .quick-access-button {
        background-color: #000000 !important;
        border: 3px solid #0066FF !important;
        color: #FFFF00 !important;
}

.high-contrast .quick-access-content {
    background-color: #000000 !important;
    border: 3px solid #0066FF !important;
    scrollbar-color: #FFFF00 #000000;
}

.high-contrast .quick-access-content::-webkit-scrollbar-track {
    background: #000000;
    border: 1px solid #0066FF;
}

.high-contrast .quick-access-content::-webkit-scrollbar-thumb {
    background-color: #FFFF00;
    border: 2px solid #000000;
}

.high-contrast .quick-access-content::-webkit-scrollbar-thumb:hover {
    background-color: #FFFF00;
}

.high-contrast .quick-access-item {
    color: #FFFF00 !important;
}

.high-contrast .quick-access-item:hover {
    background-color: #333333 !important;
}

.high-contrast .quick-access-section-title {
    background-color: #000000 !important;
    color: #FFFF00 !important;
    border-bottom: 1px solid #0066FF !important;
    font-weight: bold;
}

#searchDiv input {
    background: rgba(255, 255, 255, 0.8);
    backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 255, 255, 0.2);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
}

#searchDiv button,
#welcomeButton,
#closeErrorModal,
#accessibilityBtn {
    background: rgba(16, 60, 255, 0.8);
    backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1),
                inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

#accessibilityMenu {
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.2);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
}

.pnlm-map-button {
    background: rgba(16, 60, 255, 0.8);
    backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

#welcomeScreen .p-6 {
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(12px);
    border: 0px solid rgba(255, 255, 255, 0.2);
}

#errorModal .bg-white {
    background: rgba(255, 255, 255, 0.322);
    backdrop-filter: blur(12px);
    border: 0px solid rgba(255, 255, 255, 0.2);
}
.high-contrast .quick-access-button,
.high-contrast .quick-access-content,
.high-contrast #searchDiv input,
.high-contrast #searchDiv button,
.high-contrast #welcomeButton,
.high-contrast #closeErrorModal,
.high-contrast #accessibilityBtn,
.high-contrast #accessibilityMenu {
    backdrop-filter: none;
    background: #000000;
    border: 3px solid #0066FF;
}
.high-contrast div.pnlm-tooltip span {
    background: #000000 !important;
    border: 3px solid #0066FF !important;
    color: #FFFF00 !important;
    text-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

.high-contrast div.pnlm-tooltip:hover span:after {
    border-color: #000000 transparent transparent transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

.pnlm-brightness-button {
    position: absolute;
    top: 17px;
    left: 200px;
    background: rgba(16, 60, 255, 0.8);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 0.75rem;
    padding: 0.5rem 1rem;
    cursor: pointer;
    z-index: 2;
    font-size: 1.125rem;
    font-weight: 500;
    font-family: 'Quicksand', sans-serif;
    color: white;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
}

.pnlm-brightness-button:hover {
    background: rgba(16, 60, 255, 0.9);
    transform: translateY(-1px);
    box-shadow: 0 6px 8px rgba(0, 0, 0, 0.15);
}

.pnlm-brightness-button.active {
    background: rgba(30, 64, 175, 0.9);
}

.pnlm-container.dimmed::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.3);
    z-index: 1;
    pointer-events: none;
}

.high-contrast .pnlm-brightness-button {
    background-color: #000000 !important;
    border: 3px solid #0066FF !important;
    color: #FFFF00 !important;
    backdrop-filter: none;
}

.pnlm-map-button,
.pnlm-brightness-button {
    position: absolute;
    padding: 12px 20px;
    background: rgba(16, 60, 255, 0.15);
    border: 1px solid rgba(16, 60, 255, 0.3);
    border-radius: 16px;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    color: white;
    font-family: 'Quicksand', sans-serif;
    font-size: 1.125rem;
    font-weight: 500;
    cursor: pointer;
    z-index: 2;
    transition: all 0.3s ease;
    box-shadow: 0 8px 32px rgba(16, 60, 255, 0.2);
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.pnlm-map-button {
    top: 17px;
    left: 40px;
}

.pnlm-brightness-button {
    top: 17px;
    left: 200px;
}

.pnlm-map-button:hover,
.pnlm-brightness-button:hover {
    background: rgba(16, 60, 255, 0.25);
    transform: translateY(-2px);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15);
}

.pnlm-brightness-button.active {
    background: rgba(255, 255, 255, 0.25);
    border-color: rgba(255, 255, 255, 0.3);
    box-shadow: 0 8px 32px rgba(170, 185, 255, 0.2);
    
}

.high-contrast .pnlm-map-button,
.high-contrast .pnlm-brightness-button {
    background: #000000 !important;
    border: 3px solid #0066FF !important;
    color: #FFFF00 !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
}

.high-contrast .pnlm-brightness-button.active {
    background: #333333 !important;
}

.error-modal-backdrop {
    background: rgba(0, 0, 0, 0.7);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.error-modal-content {
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 0px solid rgba(255, 255, 255, 0.2);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
}

.error-icon-container {
    background: rgba(239, 68, 68, 0.1);
    box-shadow: 0 4px 12px rgba(239, 68, 68, 0.1);
}

.error-modal-button {
    background: rgba(16, 60, 255, 0.8);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
}

.error-modal-button:hover {
    background: rgba(16, 60, 255, 0.9);
    transform: translateY(-1px);
    box-shadow: 0 6px 8px rgba(0, 0, 0, 0.15);
}

.high-contrast .error-modal-content {
    background: #000000 !important;
    border: 3px solid #0066FF !important;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

.high-contrast .error-modal-button {
    background: #000000 !important;
    border: 3px solid #0066FF !important;
    color: #FFFF00 !important;
    backdrop-filter: none;
}

.high-contrast .error-modal-text {
    color: #FFFF00 !important;
}

.high-contrast #errorModal {
    backdrop-filter: none !important;
}

.high-contrast #errorModal > div {
    background: #000000 !important;
    border: 3px solid #0066FF !important;
    backdrop-filter: none !important;
}

.high-contrast #errorModal h3,
.high-contrast #errorModal p {
    color: #FFFF00 !important;
}

.high-contrast #closeErrorModal {
    background: #000000 !important;
    border: 3px solid #0066FF !important;
    color: #FFFF00 !important;
}

.high-contrast #errorModal .rounded-full {
    background: #000000 !important;
    border: 2px solid #0066FF !important;
}

.high-contrast #errorModal svg {
    color: #FFFF00 !important;
}

.reduce-motion .pnlm-hotspot-base.pnlm-scene:hover,
.reduce-motion .pnlm-hotspot-base.pnlm-info:hover {
    transform: none;
    transition: none;
}

.reduce-motion .pnlm-hotspot-base.pnlm-scene,
.reduce-motion .pnlm-hotspot-base.pnlm-info {
    transition: none;
}

.reduce-motion div.pnlm-tooltip span {
    transition: none;
}

.reduce-motion div.pnlm-tooltip:hover span {
    transform: none;
}

.reduce-motion .quick-access-item,
.reduce-motion .quick-access-button,
.reduce-motion .pnlm-map-button,
.reduce-motion .pnlm-brightness-button,
.reduce-motion button {
    transition: none !important;
    transform: none !important;
}

.reduce-motion .quick-access-item:hover,
.reduce-motion .quick-access-button:hover,
.reduce-motion .pnlm-map-button:hover,
.reduce-motion .pnlm-brightness-button:hover,
.reduce-motion button:hover {
    transform: none !important;
}

.environment-banner {
    position: fixed;
    bottom: 12px;
    left: 50%;
    transform: translateX(-50%);
    padding: 8px 16px;
    border-radius: 16px;
    font-family: 'Quicksand', sans-serif;
    font-weight: 600;
    text-align: center;
    z-index: 1000;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
    width: auto;
    max-width: 90%;
    animation: banner-glow 3s cubic-bezier(0.4,0,0.2,1);
    box-shadow: 0 0 0 0 rgba(250,204,21,0.7), 0 4px 12px rgba(0,0,0,0.3);
}

@keyframes banner-glow {
    0% {
        box-shadow: 0 0 0 0 rgba(250,204,21,0.7), 0 4px 12px rgba(0,0,0,0.3);
        filter: brightness(1.2) drop-shadow(0 0 16px rgba(250,204,21,0.7));
    }
    60% {
        box-shadow: 0 0 32px 12px rgba(250,204,21,0.7), 0 4px 12px rgba(0,0,0,0.3);
        filter: brightness(1.4) drop-shadow(0 0 32px rgba(250,204,21,0.7));
    }
    100% {
        box-shadow: 0 0 0 0 rgba(250,204,21,0.0), 0 4px 12px rgba(0,0,0,0.3);
        filter: none;
    }
}

.preview-banner {
    background-color: rgba(250, 204, 21, 0.9);
    color: #000;
    font-size: 0.95rem;
    border: 2px solid rgba(245, 158, 11, 0.7);
}

.production-banner {
    background-color: rgba(22, 163, 74, 0.9);
    color: white;
    font-size: 0.85rem;
    border: 2px solid rgba(21, 128, 61, 0.7);
    padding: 6px 12px;
}

/* zosatwiam to jakby sie gdzies indziej przydalo */
@keyframes pulse {
    0% { opacity: 0.8; }
    50% { opacity: 1; }
    100% { opacity: 0.8; }
}

.high-contrast .environment-banner {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border: 2px solid #0066FF;
    background-color: #000 !important;
    color: #FFFF00 !important;
}

.reduce-motion .environment-banner {
    transition: none !important;
}