
#mobile-controls-hud .mch-btn:active{
  transform: translateY(1px);
}

#mobile-controls-hud .mch-up,
#mobile-controls-hud .mch-down,
#mobile-controls-hud .mch-left,
#mobile-controls-hud .mch-right{
  min-width:64px;
  min-height:64px;
  font-size:20px;
}

#mobile-controls-hud .mch-space{
  min-width:140px;
}

#mobile-controls-hud .mch-mod{
  min-width:90px;
}

/* extracted from styles/03-panel-contract.css — Toolbar ui-edit + cursor suppression family */
/* === Toolbar visibility/edit-mode only; live position is owned by ui-customizer.js === */

body.ui-edit-mode #toolbar-panel,
body.ui-edit-mode #anchored-sidebar,
body.ui-edit-mode #garden-hub-panel,
body.ui-edit-mode #play-hub-panel,
body.ui-edit-mode #online-hub-panel {
  outline: 3px solid #ffd400;
  outline-offset: 2px;
  box-shadow: 0 0 0 3px rgba(0,0,0,0.55), 0 0 22px rgba(255,212,0,0.55);
}
body.ui-edit-mode #toolbar-panel {
  cursor: grab !important;
}
body.ui-edit-mode #toolbar-panel.ui-dragging-toolbar {
  cursor: grabbing !important;
}

/* ============================
   ABSOLUTE GLOBAL CURSOR SUPPRESSION (vFinal + Native UI Fix)
   ============================ */

/* Disable OS cursor on every visual layer */
html, body, *, *::before, *::after {
  cursor: none !important;
}

/* Scrollable and interactive UI regions */
html, body,
#anchored-sidebar,
#anchored-sidebar *,
.sidebar-scroll,
.sidebar-scroll *,
.panel,
.panel *,
.tabs,
.tabs *,
.tab,
.tab *,
button,
button *,
a,
a *,
label,
label *,
input,
input *,
select,
select *,
option,
textarea,
textarea * {
  cursor: none !important;
}

/* Force cursor suppression inside scrollbars + shadow regions */
::-webkit-scrollbar,
::-webkit-scrollbar-thumb,
::-webkit-scrollbar-track,
::-webkit-resizer,
::-webkit-scrollbar-corner {
  cursor: none !important;
}

/* Suppress native dropdown cursors */
select:focus,
select:active,
option:focus,
option:active {
  cursor: none !important;
}

/* Shadow-root workaround for internal form UIs */
:host,
:root {
  cursor: none !important;
}

/* ============================
   Remove native dropdown + scrollbar UI
   ============================ */

/* Replace OS dropdown with custom-styled box */
select {
  -webkit-appearance: none !important;
  appearance: none !important;
  background-color: #415a77 !important;
  border: 2px solid #ffd60a !important;
  border-radius: 6px !important;
  padding: 2px 10px !important;
  color: #fff !important;
}
select::-ms-expand {
  display: none;
}

/* Scrollbar removal (still scrollable by wheel/drag) */
* {
  scrollbar-width: none !important; /* Firefox */
}
*::-webkit-scrollbar {
  width: 0 !important;
  height: 0 !important;
}
*::-webkit-scrollbar-thumb,
*::-webkit-scrollbar-track,
*::-webkit-scrollbar-corner {
  background: transparent !important;
  cursor: none !important;
}

/* extracted from styles/03-panel-contract.css — Hub label/hotkey helpers */

.hub-hotkey {
  flex: 0 0 auto;
  font-size: 12px;
  opacity: 0.7;
  padding: 2px 6px;
  border: 1px solid rgba(255,255,255,0.18);
}

/* ===== moved from 03-panel-contract.css: cursor hard-fix / readiness block ===== */
/* ==== Cursor visibility hotfix ==== */

#toolbar-panel .cursor-btn img,
#toolbar-panel button img {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* ==== Robust cursor readiness guard ==== */
html body:not(.custom-cursor-ready),
html body:not(.custom-cursor-ready) *,
html body:not(.custom-cursor-ready) *::before,
html body:not(.custom-cursor-ready) *::after {
  cursor: auto !important;
}

body.custom-cursor-ready #cursor {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: none !important;
  z-index: 2147483647 !important;
}

body.custom-cursor-ready #toolbar-panel .cursor-btn img,
body.custom-cursor-ready #toolbar-panel button img {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* Cursor sprite hard-fix: use child img so panel CSS cannot blank the visual */
#cursor {
  overflow: visible !important;
}
#cursor > img.cg-cursor-sprite {
  width: 100% !important;
  height: 100% !important;
  image-rendering: pixelated !important;
  pointer-events: none !important;
}

/* Cursor visual hard fix v3 */
#cursor > img.cg-cursor-sprite {
  object-fit:contain !important;
  filter: drop-shadow(0 0 1px rgba(0,0,0,0.9));
}

/* Cursor visibility real fix */
#cursor {
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  background-image: var(--cg-cursor-image, url("../assets/ui/cursor-select.png")) !important;
  background-size: contain !important;
  background-repeat: no-repeat !important;
  background-position: center center !important;
}
#cursor > img.cg-cursor-sprite {
  display:none !important;
}

#party-karate-2p,
#party-karate-cpu {
  margin-top: 0;
}

/* ============================


/* ============================================================
   Owner shift from legacy — hub panel polish contract
   ============================================================ */
.hub-btn {
  min-height: 70px;
  padding: 8px 12px;
  margin: 0;
  border-radius: 16px;
  border: 1px solid rgba(102, 140, 180, 0.26);
  background:
    linear-gradient(180deg, rgba(36, 52, 76, 0.96), rgba(18, 28, 43, 0.96));
  box-shadow: 0 8px 18px rgba(0,0,0,0.16), inset 0 1px 0 rgba(255,255,255,0.05);
}

.hub-btn:hover {
  filter: none;
  transform: translateY(-1px);
  border-color: rgba(153, 197, 241, 0.46);
  background: linear-gradient(180deg, rgba(47, 68, 99, 0.98), rgba(22, 35, 54, 0.98));
}

.hub-btn:active {
  transform: translateY(0);
  filter: brightness(0.97);
}

.hub-hotkey {
  top: 8px;
  right: 10px;
  min-width: 20px;
  height: 20px;
  border-radius: 7px;
  background: rgba(8, 13, 20, 0.72);
  border-color: rgba(255,255,255,0.18);
}

.hub-label {
  font-weight: 800;
  letter-spacing: 0.15px;
}

.hub-panel {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  overscroll-behavior: contain;
}

.hub-panel > .panel-header {
  flex: 0 0 auto;
}

.hub-panel > .panel-body.hub-body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  min-width: 0;
  max-height: none !important;
  height: auto !important;
  padding: 12px !important;
  box-sizing: border-box;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  overscroll-behavior-y: contain;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01) 20%, rgba(0,0,0,0.03) 100%),
    linear-gradient(180deg, rgba(10, 16, 27, 0.92), rgba(7, 12, 20, 0.95));
}

.hub-panel > .panel-body.hub-body > .hub-section-title,
.hub-panel > .panel-body.hub-body > .hub-divider,
.hub-panel > .panel-body.hub-body > .hub-btn,
.hub-panel > .panel-body.hub-body > .custom-ui-hub-list,
.hub-panel > .panel-body.hub-body > .hub-list {
  flex: 0 0 auto;
}

.hub-panel .hub-btn {
  display: flex !important;
  align-items: center;
  gap: 10px;
  width: 100%;
  position: relative;
  box-sizing: border-box;
  text-align: left;
  flex: 0 0 auto;
}

.hub-panel .hub-mini-icon {
  flex: 0 0 auto;
  display: block;
  width: 110px;
  height: 50px;
  image-rendering: pixelated;
}

.hub-panel .hub-label {
  flex: 1 1 auto;
  min-width: 0;
  display: block;
}

.hub-panel .hub-hotkey {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: auto;
  position: static;
}

.hub-panel .hub-list,
.hub-panel .custom-ui-hub-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.hub-section-title {
  margin: 6px 0 2px;
  padding: 0 2px;
  color: rgba(215, 231, 249, 0.76);
  letter-spacing: 1.35px;
}

.hub-divider {
  height: 1px;
  margin: 8px 0 6px;
  background: linear-gradient(90deg, rgba(150, 190, 232, 0), rgba(150, 190, 232, 0.4), rgba(150, 190, 232, 0));
}
