/* XO map interaction layer */
.xo-panel[data-xo-content="web"]{width:100%;max-width:none}
.xo-graph-card{width:100%;border:0!important;border-radius:0!important;background:radial-gradient(circle at 50% 48%,#221333 0,#0c0c13 38%,#060609 74%);box-shadow:none!important}
.xo-graph-card::after{content:"";position:absolute;z-index:0;inset:0;border-block:1px solid #30303b;pointer-events:none}
.xo-graph-toolbar{left:auto;right:14px;max-width:min(760px,calc(100% - 28px));justify-content:flex-end;flex-wrap:wrap}
.xo-graph-toolbar button{width:auto!important;min-width:40px;height:40px;border-radius:999px!important;padding:0 12px!important;font-size:.74rem;letter-spacing:.02em;background:#08080de8}
.xo-graph-toolbar button[data-graph-zoom]{width:40px!important;padding:0!important;font-size:1.15rem}
.xo-graph-toolbar button[aria-pressed="true"]{background:var(--xo-violet);border-color:var(--xo-violet);color:#070708}
.xo-map-legend i{background:linear-gradient(90deg,#ef4444,#d946ef,#a855f7,#3b82f6)}
.xo-map-legend.is-rainbow i{background:linear-gradient(90deg,#ff5f8f,#ffbd59,#ffe66d,#62e6a5,#55d6ff,#8c7cff,#ea68d4)}
.xo-map-card{left:20px;right:auto}
.xo-graph-card.is-fixed-layout .xo-node{cursor:pointer}
.xo-graph-card.is-layout-editing .xo-node{cursor:grab}
.xo-graph-card.is-layout-editing .xo-node:active{cursor:grabbing}

.xo-map-settings{position:absolute;z-index:26;width:min(390px,calc(100% - 28px));max-height:calc(100% - 28px);overflow:auto;padding:18px;border:1px solid #6a6874;border-radius:20px;background:#09090ef5;box-shadow:0 24px 70px #000d;backdrop-filter:blur(18px)}
.xo-map-settings[hidden]{display:none!important}
.xo-map-settings header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.xo-map-settings h2{margin:2px 0 0;font-size:1.55rem;letter-spacing:-.035em}
.xo-map-settings header>button{width:36px;height:36px;padding:0;border-radius:50%;background:transparent;color:#fff}
.xo-map-settings label{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;margin:12px 0;color:#fff;font-size:.84rem;font-weight:800}
.xo-map-settings label select,.xo-map-settings label input[type="range"]{grid-column:1/-1;width:100%}
.xo-map-settings output{color:var(--xo-blue);font-variant-numeric:tabular-nums}
.xo-map-settings .xo-small{line-height:1.5}
.xo-map-settings .xo-status{margin:10px 0 0}
.xo-map-settings-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.xo-map-settings-actions button{flex:1 1 140px;padding:9px 11px;font-size:.76rem}
.xo-layout-panel{top:70px;right:14px}
.xo-joystick-settings{right:14px;bottom:14px}
.xo-map-settings .xo-check-row{display:flex;grid-template-columns:none;gap:9px;align-items:center}
.xo-map-settings .xo-check-row input[type="checkbox"]{width:18px;height:18px;margin:0;accent-color:var(--xo-violet)}
.xo-map-settings input[type="range"]{accent-color:var(--xo-violet);writing-mode:horizontal-tb;appearance:auto;height:1.25rem;min-height:1.25rem;max-height:1.25rem;display:block;touch-action:pan-x}

.xo-map-joystick{position:absolute;z-index:16;left:var(--joystick-x,90%);top:var(--joystick-y,84%);transform:translate(-50%,-50%);touch-action:none;user-select:none}
.xo-joystick-base{position:relative;width:112px;height:112px;border:1px solid #ffffff9a;border-radius:50%;background:radial-gradient(circle at 50% 50%,#272337d9 0 26%,#0b0b11e8 28% 70%,#ffffff16 72% 100%);box-shadow:0 16px 42px #000c,0 0 24px #a855f733 inset;cursor:grab;outline:none}
.xo-joystick-base::before,.xo-joystick-base::after{content:"";position:absolute;left:50%;top:50%;background:#ffffff2b;transform:translate(-50%,-50%);pointer-events:none}
.xo-joystick-base::before{width:72%;height:1px}.xo-joystick-base::after{width:1px;height:72%}
.xo-joystick-base:focus-visible{outline:3px solid var(--xo-blue);outline-offset:4px}
.xo-joystick-knob{position:absolute;left:50%;top:50%;width:44px;height:44px;border:2px solid #fff;border-radius:50%;background:linear-gradient(145deg,#ef4444,#a855f7 54%,#3b82f6);box-shadow:0 8px 20px #000b,0 0 17px #a855f7aa;transform:translate(-50%,-50%);transition:transform .06s linear;pointer-events:none}
.xo-map-joystick.is-positioning .xo-joystick-base{cursor:move;animation:xo-joystick-positioning 1s ease-in-out infinite}
.xo-map-joystick.is-positioning .xo-joystick-base::before,.xo-map-joystick.is-positioning .xo-joystick-base::after{background:#fff8}

@keyframes xo-joystick-positioning{0%,100%{box-shadow:0 16px 42px #000c,0 0 0 0 #55d6ff66}50%{box-shadow:0 16px 42px #000c,0 0 0 10px #55d6ff00}}

@media(max-width:900px){
  .xo-graph-toolbar{top:12px;right:10px;max-width:calc(100% - 20px)}
  .xo-layout-panel{top:108px;right:10px}
  .xo-joystick-settings{right:10px;bottom:10px}
}
@media(max-width:620px){
  .xo-panel[data-xo-content="web"]{padding-inline:10px}
  .xo-graph-card{height:calc(100dvh - 250px);min-height:520px}
  .xo-graph-toolbar{top:42px;left:8px;right:8px;max-width:none;justify-content:flex-end;gap:5px}
  .xo-graph-toolbar button{height:35px;min-width:35px;padding:0 9px!important;font-size:.67rem}
  .xo-graph-toolbar button[data-graph-zoom]{width:35px!important;font-size:1rem}
  .xo-map-legend{max-width:calc(100% - 24px)}
  .xo-map-legend i{width:62px}
  .xo-map-card{left:10px;right:10px;width:auto}
  .xo-map-settings{width:calc(100% - 20px);max-height:65%;padding:16px;border-radius:18px}
  .xo-layout-panel{top:121px;left:10px;right:10px}
  .xo-joystick-settings{left:10px;right:10px;bottom:10px}
  .xo-joystick-base{width:94px;height:94px}
  .xo-joystick-knob{width:38px;height:38px}
}

/* XO hierarchy navigation v1 */
.xo-map-path{position:absolute;z-index:19;top:14px;left:14px;display:flex;align-items:center;gap:6px;max-width:min(48%,620px);overflow-x:auto;padding:4px;border:1px solid #ffffff24;border-radius:999px;background:#08080de8;box-shadow:0 12px 34px #0008;backdrop-filter:blur(12px);scrollbar-width:none}
.xo-map-path::-webkit-scrollbar{display:none}
.xo-map-path button{position:relative;flex:0 0 auto;width:auto!important;min-height:32px;padding:6px 11px;border:0;border-radius:999px;background:transparent;color:#d9d7e2;font-size:.72rem;font-weight:850;letter-spacing:.01em;white-space:nowrap}
.xo-map-path button:not(:last-child)::after{content:"›";position:absolute;right:-7px;color:#888594;pointer-events:none}
.xo-map-path button:hover,.xo-map-path button:focus-visible{background:#ffffff13;color:#fff}
.xo-map-path button[aria-current="page"]{background:#a855f72e;color:#fff;box-shadow:0 0 0 1px #a855f788 inset}
.xo-graph-toolbar button:disabled{opacity:.38;cursor:not-allowed;filter:saturate(.4)}

@media(max-width:1100px){
  .xo-map-path{max-width:42%}
  .xo-graph-toolbar{max-width:56%}
}
@media(max-width:900px){
  .xo-map-path{top:10px;left:10px;max-width:calc(100% - 20px)}
  .xo-graph-toolbar{top:58px;left:10px;right:10px;max-width:none}
  .xo-layout-panel{top:108px}
}
@media(max-width:620px){
  .xo-map-path{top:7px;left:8px;right:8px;max-width:none}
  .xo-map-path button{min-height:30px;padding:5px 9px;font-size:.66rem}
  .xo-graph-toolbar{top:50px;justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px;scrollbar-width:none}
  .xo-graph-toolbar::-webkit-scrollbar{display:none}
  .xo-graph-toolbar button{flex:0 0 auto}
  .xo-layout-panel{top:96px}
}

