/*
 * WolfStorm — Wolf Territories Grid Web Viewer
 * Copyright (C) 2026 Wolf Territories Grid / IntelligentWolf Ltd.
 * All rights reserved.
 *
 * An original work. Interoperates with OpenSimulator grids by implementing the
 * publicly documented LLUDP and HTTP capability protocols; protocol
 * interoperability does not imply shared authorship or a shared code base.
 *
 * Unauthorised copying, redistribution or modification of this file, in whole or
 * in part, is prohibited without the written permission of IntelligentWolf Ltd.
 * See COPYRIGHT in the project root. https://wolfterritories.org
 */
:root{--ws-tb-flat:60px;--ws-toolbar-h:var(--ws-tb-flat)}.toolbar-bottom{position:fixed;bottom:0;left:0;right:0;box-sizing:border-box;height:var(--ws-toolbar-h);background:linear-gradient(180deg, rgba(25, 31, 45, 0.95) 0, rgba(20, 26, 38, 0.98) 100%);border-top:1px solid rgba(255, 255, 255, 0.1);display:flex;align-items:center;justify-content:center;gap:4px;padding:0 10px;z-index:1000;box-shadow:0 -2px 10px rgba(0, 0, 0, 0.5)}.chat-bar-section{display:flex;align-items:center;gap:8px;flex:0 0 auto}.toolbar-buttons{display:flex;align-items:center;gap:4px;flex:0 1 auto;min-width:0;justify-content:center;overflow-x:auto;overflow-y:hidden}.toolbar-buttons::-webkit-scrollbar{height:4px}.toolbar-buttons::-webkit-scrollbar-thumb{background:rgba(255, 255, 255, 0.2);border-radius:2px}.toolbar-btn{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:60px;height:50px;background:rgba(60, 60, 60, 0.6);border:1px solid rgba(255, 255, 255, 0.1);border-radius:6px;color:#fff;cursor:pointer;transition:all 0.2s ease;padding:4px 8px;font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif}.toolbar-btn.disabled,.toolbar-btn:disabled{opacity:0.4;cursor:not-allowed;filter:grayscale(1)}.toolbar-btn:hover:not(.disabled):not(:disabled){background:rgba(80, 80, 80, 0.8);border-color:rgba(100, 150, 255, 0.5);transform:translateY(-2px);box-shadow:0 4px 8px rgba(0, 0, 0, 0.3)}.toolbar-btn:active{transform:translateY(0);background:rgba(50, 50, 50, 0.9)}.toolbar-btn .material-icons{font-size:24px;margin-bottom:2px}.toolbar-btn .btn-label{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:0.5px}.toolbar-btn.active{background:linear-gradient(135deg, rgba(60, 120, 200, 0.7) 0, rgba(40, 80, 160, 0.8) 100%);border-color:rgba(100, 150, 255, 0.8)}.toolbar-btn.mic-muted{background:linear-gradient(135deg, rgba(200, 60, 60, 0.75) 0, rgba(150, 30, 30, 0.85) 100%);border-color:rgba(255, 110, 110, 0.85);color:#fff}.toolbar-btn.active::before{content:'';position:absolute;top:2px;right:2px;width:12px;height:12px;border-radius:3px;background:rgba(40, 170, 70, 0.95);box-shadow:0 0 3px rgba(0, 0, 0, 0.5);pointer-events:none}.toolbar-btn.active::after{content:'';position:absolute;top:5px;right:5px;width:6px;height:3px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg);pointer-events:none}#vr-btn.vr-active{background:linear-gradient(135deg, rgba(40, 180, 80, 0.8) 0, rgba(20, 140, 60, 0.9) 100%);border-color:rgba(80, 220, 120, 0.9);box-shadow:0 0 10px rgba(40, 180, 80, 0.5);animation:vr-pulse 2s infinite}@keyframes vr-pulse{0%,100%{box-shadow:0 0 10px rgba(40, 180, 80, 0.5)}50%{box-shadow:0 0 20px rgba(40, 180, 80, 0.8)}}#nearby-chat-btn{background:linear-gradient(135deg, rgba(80, 140, 220, 0.6) 0, rgba(60, 100, 180, 0.7) 100%)}#nearby-chat-btn.unread{background:linear-gradient(135deg, rgba(220, 140, 80, 0.8) 0, rgba(200, 100, 60, 0.9) 100%);border-color:#f90;animation:pulse-unread 1s infinite}@keyframes pulse-unread{0%{transform:scale(1);box-shadow:0 0 0 rgba(255, 150, 0, 0)}50%{transform:scale(1.05);box-shadow:0 0 10px rgba(255, 150, 0, 0.6)}100%{transform:scale(1);box-shadow:0 0 0 rgba(255, 150, 0, 0)}}#nearby-chat-btn:hover{background:linear-gradient(135deg, rgba(100, 160, 240, 0.7) 0, rgba(80, 120, 200, 0.8) 100%)}@media (max-width: 1200px){.toolbar-btn{min-width:50px;padding:4px 6px}.toolbar-btn .btn-label{font-size:9px}}@media (max-width: 900px){.toolbar-btn .btn-label{display:none}.toolbar-btn{min-width:44px;height:44px}:root{--ws-tb-flat:54px}}@media (max-width: 600px){:root{--ws-tb-flat:48px}.toolbar-bottom{padding:0 4px;overflow:hidden}.toolbar-buttons{flex:1;width:auto;overflow-x:scroll;justify-content:flex-start;padding-left:4px;-ms-overflow-style:none;scrollbar-width:none}.toolbar-buttons::-webkit-scrollbar{display:none}.toolbar-btn{min-width:36px;height:40px;margin-right:2px}.toolbar-btn .material-icons{font-size:20px;margin-bottom:0}#nearby-chat-btn{min-width:36px;padding:2px}#nearby-chat-btn .btn-label{display:none}}#location-bar.location-bar{position:fixed!important;top:28px!important;left:0!important;right:0!important;height:26px!important;background:linear-gradient(180deg, rgba(30, 40, 60, 0.98) 0, rgba(20, 30, 45, 0.99) 100%)!important;border-bottom:1px solid rgba(255, 255, 255, 0.15)!important;border-radius:0!important;display:flex!important;align-items:center!important;justify-content:space-between!important;padding:0 12px!important;z-index:10000!important;font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif!important;font-size:12px!important;color:#fff!important;backdrop-filter:none!important;box-shadow:0 2px 8px rgba(0, 0, 0, 0.5)!important}#location-bar .location-left,.location-bar .location-left{display:flex!important;align-items:center!important;gap:8px!important;overflow:hidden!important;white-space:nowrap!important;text-overflow:ellipsis!important;visibility:visible!important}#location-bar .location-right,.location-bar .location-right{display:flex!important;align-items:center!important;gap:16px!important;flex-shrink:0!important;visibility:visible!important}.region-name{color:#8cf;font-weight:600;font-size:13px}.region-coords{color:#ddd;font-size:12px}.parcel-name{color:#9d9;font-size:12px;max-width:200px;overflow:hidden;text-overflow:ellipsis}.balance-display{color:#fc6;font-weight:600;font-size:13px}#sl-time,.sl-time{color:#fff!important;font-weight:600!important;font-size:14px!important;font-family:'Consolas','Monaco',monospace!important;background:rgba(40, 60, 100, 0.8)!important;padding:4px 12px!important;border-radius:4px!important;border:1px solid rgba(100, 150, 255, 0.5)!important;text-shadow:0 1px 3px rgba(0, 0, 0, 0.7)!important;display:inline-block!important;visibility:visible!important}.location-bar.hidden{display:none}@media (max-width: 768px){.location-bar{font-size:11px;padding:0 8px}.parcel-name{display:none}.location-right{gap:10px}}@media (max-width: 480px){.location-bar{height:22px;font-size:10px}.region-coords{display:none}.balance-display{display:none}}.burger-menu-btn{display:none!important}@media (max-width: 600px){.toolbar-buttons{display:none!important}.burger-menu-btn{display:flex!important;min-width:44px;height:44px;background:linear-gradient(135deg, rgba(80, 140, 220, 0.7) 0, rgba(60, 100, 180, 0.8) 100%)}.chat-bar-section{flex:1;max-width:none}}.mobile-menu{position:fixed;bottom:0;left:0;right:0;top:0;background:rgba(0, 0, 0, 0.7);z-index:10001;display:flex;align-items:flex-end;justify-content:center}.mobile-menu-content{width:100%;max-width:100%;max-height:70vh;background:linear-gradient(180deg, rgba(35, 45, 65, 0.98) 0, rgba(25, 35, 50, 0.99) 100%);border-top-left-radius:16px;border-top-right-radius:16px;border-top:1px solid rgba(100, 150, 255, 0.3);overflow-y:auto;animation:slideUp 0.2s ease-out}@keyframes slideUp{from{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.mobile-menu-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid rgba(255, 255, 255, 0.1);font-size:16px;font-weight:600;color:#fff}.mobile-menu-close{background:transparent;border:none;color:#fff;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center}.mobile-menu-close:hover{color:#ff6b6b}.mobile-menu-grid{display:grid;grid-template-columns:repeat(4, 1fr);gap:8px;padding:16px}@media (max-width: 400px){.mobile-menu-grid{grid-template-columns:repeat(3, 1fr)}}.mobile-menu-item{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px 8px;background:rgba(60, 70, 90, 0.6);border:1px solid rgba(255, 255, 255, 0.1);border-radius:8px;color:#fff;cursor:pointer;transition:all 0.2s ease;gap:4px}.mobile-menu-item:active,.mobile-menu-item:hover{background:rgba(80, 100, 140, 0.8);border-color:rgba(100, 150, 255, 0.5);transform:scale(1.02)}.mobile-menu-item .material-icons{font-size:28px}.mobile-menu-item span:last-child{font-size:11px;font-weight:500;text-transform:uppercase}#fullscreen-btn,.mobile-menu-item[data-action="fullscreen"]{background:linear-gradient(135deg, rgba(100, 180, 100, 0.6) 0, rgba(60, 140, 80, 0.7) 100%)}#fullscreen-btn:hover,.mobile-menu-item[data-action="fullscreen"]:hover{background:linear-gradient(135deg, rgba(120, 200, 120, 0.7) 0, rgba(80, 160, 100, 0.8) 100%)}#fullscreen-btn.fullscreen-active,.mobile-menu-item[data-action="fullscreen"].fullscreen-active{background:linear-gradient(135deg, rgba(200, 100, 100, 0.7) 0, rgba(160, 60, 60, 0.8) 100%)}#fullscreen-btn.fullscreen-active .material-icons,.mobile-menu-item[data-action="fullscreen"].fullscreen-active .material-icons{}body.ws-toolbar-rows{--ws-toolbar-h:97px;--ws-tb-rule:rgba(255, 255, 255, 0.16);--ws-tb-muted:linear-gradient(180deg, rgba(206, 68, 68, 0.92) 0%, rgba(166, 42, 42, 0.92) 100%)}body.ws-toolbar-rows .toolbar-bottom{padding:6px 10px}.toolbar-buttons[data-rows="1"]{flex-direction:column;align-items:flex-start;gap:4px;overflow:visible}.toolbar-row{display:flex;align-items:center;justify-content:flex-start;gap:2px;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none}.toolbar-row::-webkit-scrollbar{display:none}.tb-group{display:flex;align-items:center;gap:2px;position:relative;padding-left:9px;margin-left:9px}.tb-group::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);width:1px;height:26px;background:var(--ws-tb-rule);pointer-events:none}.tb-group.tb-first{padding-left:0;margin-left:0}.tb-group.tb-first::before{display:none}.tb-group.is-empty{display:none}.toolbar-buttons[data-rows="1"] .toolbar-btn{min-width:58px;height:40px;padding:2px 8px;background:transparent;border:1px solid transparent;border-radius:7px;box-shadow:none}.toolbar-buttons[data-rows="1"] .toolbar-btn .material-icons{font-size:20px;margin-bottom:0;line-height:22px}.toolbar-buttons[data-rows="1"] .toolbar-btn .btn-label{font-size:10px;font-weight:400;text-transform:none;letter-spacing:0;line-height:12px;opacity:0.9;white-space:nowrap}.toolbar-buttons[data-rows="1"] .toolbar-btn:hover:not(.disabled):not(:disabled){background:rgba(255, 255, 255, 0.10);border-color:transparent;transform:none;box-shadow:none}.toolbar-buttons[data-rows="1"] .toolbar-btn:active:not(.disabled):not(:disabled){background:rgba(255, 255, 255, 0.16);transform:none}.toolbar-buttons[data-rows="1"] .toolbar-btn:focus-visible{outline:2px solid rgba(120, 170, 255, 0.9);outline-offset:1px}.toolbar-buttons[data-rows="1"] .toolbar-btn.active:not(.mic-muted){background:linear-gradient(180deg, rgba(72, 132, 214, 0.92) 0, rgba(48, 104, 186, 0.92) 100%);border-color:transparent}.toolbar-buttons[data-rows="1"] .toolbar-btn.active .btn-label{opacity:1}.toolbar-buttons[data-rows="1"] .toolbar-btn.active::after,.toolbar-buttons[data-rows="1"] .toolbar-btn.active::before{display:none}.toolbar-buttons[data-rows="1"] .toolbar-btn.mic-muted,body.ws-hud-game .toolbar-buttons[data-rows="1"] .toolbar-btn.mic-muted{background:var(--ws-tb-muted);border-color:transparent}body.ws-toolbar-rows #nearby-chat-btn{height:40px;min-width:58px;border-color:transparent;border-radius:7px}body.ws-toolbar-rows #nearby-chat-btn:not(.unread){background:rgba(96, 156, 236, 0.22)}body.ws-toolbar-rows #nearby-chat-btn:not(.unread):hover{background:rgba(96, 156, 236, 0.34)}body.ws-toolbar-rows #nearby-chat-btn .btn-label{text-transform:none;letter-spacing:0;font-weight:400}body.ws-toolbar-rows .chat-bar-section{padding-right:9px;margin-right:9px;border-right:1px solid var(--ws-tb-rule)}body.ws-toolbar-rows #fullscreen-btn:not(.fullscreen-active):not(.active){background:transparent}body.ws-glass.ws-toolbar-rows{--ws-tb-rule:var(--glass-rim)}body.ws-glass .toolbar-buttons[data-rows="1"] .toolbar-btn:hover:not(.disabled):not(:disabled){background:rgba(132, 204, 22, 0.18)}body.ws-glass .toolbar-buttons[data-rows="1"] .toolbar-btn:active:not(.disabled):not(:disabled){background:rgba(132, 204, 22, 0.28)}body.ws-glass .toolbar-buttons[data-rows="1"] .toolbar-btn.active:not(.mic-muted){background:linear-gradient(180deg, rgba(132, 204, 22, 0.85) 0, rgba(101, 163, 13, 0.85) 100%);color:#0b1220}body.ws-hud-game.ws-toolbar-rows{--ws-tb-rule:rgba(132, 204, 22, 0.28)}body.ws-hud-game .toolbar-buttons[data-rows="1"] .toolbar-btn{min-width:40px;width:40px;height:40px;padding:0;border-radius:8px;background:rgba(255, 255, 255, 0.05);border:1px solid rgba(255, 255, 255, 0.10)}@media (max-width: 700px),(max-height: 600px){body.ws-toolbar-rows{--ws-toolbar-h:var(--ws-tb-flat)}body.ws-toolbar-rows .toolbar-bottom{padding:0 10px}.toolbar-buttons[data-rows="1"]{flex-direction:row;gap:4px;overflow-x:auto}.tb-group,.toolbar-row{display:contents}body.ws-toolbar-rows .chat-bar-section{padding-right:0;margin-right:0;border-right:none}.toolbar-buttons[data-rows="1"] .toolbar-btn{min-width:60px;height:50px;background:rgba(60, 60, 60, 0.6);border-color:rgba(255, 255, 255, 0.1);border-radius:6px}}