.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #555;--xy-background-pattern-lines-color-default: #333;--xy-background-pattern-cross-color-default: #333;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.admin-app *{box-sizing:border-box}.admin-app{--bg-deep: #0a0a0f;--bg-panel: rgba(0, 229, 255, .03);--bg-input: #08081a;--cyan: #00e5ff;--cyan-dim: #4dd0e1;--cyan-glow: rgba(0, 229, 255, .3);--orange: #ff6b35;--orange-glow: rgba(255, 107, 53, .4);--red: #ff3d00;--text-main: #e0f7fa;--text-secondary: #4dd0e1;--text-muted: #3a6a7a;--border-cyan: rgba(0, 229, 255, .2);--border-strong: rgba(0, 229, 255, .4);--success: #00e676;font-family:Orbitron,Rajdhani,Segoe UI,system-ui,sans-serif;background:var(--bg-deep);color:var(--text-main);height:100vh;display:flex;flex-direction:column;overflow:hidden;background-image:repeating-linear-gradient(0deg,rgba(0,229,255,.02) 0px,rgba(0,229,255,.02) 1px,transparent 1px,transparent 80px),repeating-linear-gradient(90deg,rgba(0,229,255,.02) 0px,rgba(0,229,255,.02) 1px,transparent 1px,transparent 80px);position:relative}.admin-app:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background:repeating-linear-gradient(0deg,rgba(0,229,255,.015) 0px,rgba(0,229,255,.015) 1px,transparent 1px,transparent 3px);pointer-events:none;z-index:9999}.admin-app header{display:flex;align-items:center;gap:12px;padding:16px 24px;background:#000a14e6;border-bottom:1px solid var(--border-cyan);box-shadow:0 2px 20px #00e5ff14;flex-shrink:0}.admin-app header h1{font-size:1.3rem;font-weight:700;color:var(--cyan);text-shadow:0 0 10px rgba(0,229,255,.3);letter-spacing:2px}.admin-app .dev-badge{background:linear-gradient(135deg,var(--orange),var(--red));color:#0a0a0f;font-size:.65rem;font-weight:900;padding:3px 10px;border-radius:4px;letter-spacing:2px;box-shadow:0 0 10px #ff6b354d}.admin-app .back-link{margin-left:auto;color:var(--text-muted);font-size:.8rem;text-decoration:none;border:1px solid var(--border-cyan);padding:6px 12px;border-radius:6px;transition:color .2s,border-color .2s}.admin-app .back-link:hover{color:var(--cyan);border-color:var(--cyan)}.admin-app .sidebar-toggle{display:none;background:none;border:1px solid var(--border-cyan);color:var(--cyan);font-size:1rem;padding:6px 10px;border-radius:6px;cursor:pointer}.admin-app .sidebar-backdrop{display:none}.admin-app .admin-body{display:flex;flex:1;min-height:0}.admin-app .sidebar{display:flex;flex-direction:column;gap:4px;width:220px;flex-shrink:0;background:#000a14b3;padding:16px 0;border-right:1px solid rgba(0,229,255,.08);overflow-y:auto}.admin-app .tab-group{display:flex;flex-direction:column;padding:8px 0;border-bottom:1px solid rgba(0,229,255,.08)}.admin-app .tab-group:last-child{border-bottom:none}.admin-app .tab-group-label{display:flex;align-items:center;gap:5px;width:100%;background:none;border:none;font-family:inherit;font-size:.62rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted);opacity:.6;padding:0 20px 6px;cursor:pointer;transition:opacity .15s}.admin-app .tab-group-label:hover{opacity:1}.admin-app .tab-group-caret{font-size:.6rem;width:8px;flex-shrink:0}.admin-app .tab-group.collapsed .tab-group-label{padding-bottom:0}.admin-app .tab-group-buttons{display:flex;flex-direction:column}.admin-app .tab{display:flex;align-items:center;gap:8px;background:none;border:none;color:var(--text-muted);font-family:inherit;font-size:.85rem;font-weight:600;padding:10px 20px;cursor:pointer;border-left:2px solid transparent;transition:all .2s;text-transform:uppercase;letter-spacing:1px;text-align:left}.admin-app .tab-icon{font-size:.9rem;flex-shrink:0;filter:grayscale(.4);transition:filter .2s}.admin-app .tab.active .tab-icon{filter:none}.admin-app .tab:hover{color:var(--cyan-dim)}.admin-app .tab.active{color:var(--cyan);background:#00e5ff0f;border-left-color:var(--cyan);text-shadow:0 0 8px rgba(0,229,255,.3)}.admin-app .tab-count{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;background:#00e5ff1a;color:var(--text-secondary);font-size:.65rem;font-weight:700;letter-spacing:0;text-transform:none;vertical-align:1px}.admin-app .tab.active .tab-count{background:#00e5ff33;color:var(--cyan)}.admin-app .tab-content{padding:24px;flex:1;min-width:0;min-height:0;overflow-y:auto;display:flex;flex-direction:column}.admin-app .toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:10px}.admin-app .toolbar h2{font-size:1rem;color:var(--text-secondary);font-weight:600;letter-spacing:1px;text-transform:uppercase}.admin-app .toolbar-right{display:flex;gap:10px;align-items:center}.admin-app .result-count{color:var(--text-muted);font-size:.78rem;white-space:nowrap}.admin-app .required-mark{color:var(--orange);margin-left:2px}.admin-app .empty-state{display:flex;flex-direction:column;align-items:center;gap:8px;padding:32px 16px;text-align:center;color:var(--text-muted);font-size:.85rem;background:var(--bg-panel);border:1px dashed var(--border-cyan);border-radius:8px}.admin-app .empty-state-icon{font-size:1.6rem;opacity:.6}.admin-app .dex-hud{display:flex;align-items:center;gap:10px;padding:7px 14px;margin-bottom:12px;background:linear-gradient(90deg,rgba(0,229,255,.07),transparent 75%);border-left:2px solid var(--cyan-dim);border-radius:0 6px 6px 0}.admin-app .dex-hud-dot{width:8px;height:8px;border-radius:50%;background:var(--cyan-dim);box-shadow:0 0 6px var(--cyan-dim);flex-shrink:0}.admin-app .dex-hud-dot.scanning{background:var(--cyan);box-shadow:0 0 8px var(--cyan),0 0 16px var(--cyan-glow);animation:dex-hud-pulse 1s ease-in-out infinite}@media (prefers-reduced-motion: reduce){.admin-app .dex-hud-dot.scanning{animation:none}}@keyframes dex-hud-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}.admin-app .dex-hud-label{font-family:Orbitron,Segoe UI,system-ui,sans-serif;font-size:.68rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--cyan-dim);white-space:nowrap}.admin-app .dex-id-tag{display:inline-block;padding:2px 9px;font-family:Consolas,SF Mono,Courier New,monospace;font-size:.72rem;letter-spacing:.5px;color:var(--cyan-dim);background:#00e5ff0d;border:1px solid var(--border-cyan);clip-path:polygon(6px 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%,0 6px)}.admin-app .table-scroll tbody tr:nth-child(2n){background:#00e5ff05}.admin-app .table-scroll tbody tr{box-shadow:inset 3px 0 0 transparent;transition:background .15s,box-shadow .15s}.admin-app .table-scroll tbody tr:hover{box-shadow:inset 3px 0 0 var(--cyan)}.admin-app .table-scroll tbody tr.row-selected:nth-child(2n){background:#00e5ff1a}.admin-app .seed-progress{display:flex;align-items:center;gap:12px;margin-bottom:16px;font-size:.85rem;color:var(--text-muted)}.admin-app .seed-progress-bar{flex:1;max-width:260px;height:8px;border-radius:4px;background:var(--bg-input);border:1px solid var(--border-cyan);overflow:hidden}.admin-app .seed-progress-fill{height:100%;width:0%;background:var(--border-cyan);transition:width .3s ease}.admin-app .search-input{padding:8px 14px;background:var(--bg-input);border:1px solid var(--border-cyan);border-radius:6px;color:var(--text-main);font-family:inherit;font-size:.85rem;width:220px;transition:border-color .2s,box-shadow .2s}.admin-app .search-input::placeholder{color:var(--text-muted)}.admin-app .search-input:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 10px #00e5ff26}.admin-app .btn{border:none;padding:8px 18px;border-radius:6px;font-family:inherit;font-size:.8rem;font-weight:700;cursor:pointer;transition:transform .1s,box-shadow .2s,opacity .2s;text-transform:uppercase;letter-spacing:.5px}.admin-app .btn:hover{transform:translateY(-1px)}.admin-app .btn:active{transform:translateY(0)}.admin-app .btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.admin-app .btn.is-saving{position:relative;padding-left:30px}.admin-app .btn.is-saving:before{content:"";position:absolute;left:12px;top:50%;width:11px;height:11px;margin-top:-5.5px;border-radius:50%;border:2px solid rgba(10,10,15,.35);border-top-color:#0a0a0f;animation:btn-spin .6s linear infinite}@keyframes btn-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.admin-app .btn.is-saving:before{animation:none}}.admin-app .btn-add{background:linear-gradient(135deg,var(--cyan),var(--success));color:#0a0a0f;box-shadow:0 0 10px #00e5ff33}.admin-app .btn-add:hover{box-shadow:0 0 18px #00e5ff66}.admin-app .btn-edit{background:#00e5ff1f;color:var(--cyan);border:1px solid var(--border-cyan)}.admin-app .btn-edit:hover{background:#00e5ff33;box-shadow:0 0 8px #00e5ff33}.admin-app .btn-delete{background:#ff3d001f;color:var(--red);border:1px solid rgba(255,61,0,.25)}.admin-app .btn-delete:hover{background:#ff3d0033;box-shadow:0 0 8px #ff3d0033}.admin-app .btn-save{background:linear-gradient(135deg,var(--cyan),var(--orange));color:#0a0a0f;font-weight:700;box-shadow:0 0 10px #00e5ff33}.admin-app .btn-save:hover{box-shadow:0 0 18px #00e5ff66}.admin-app .btn-cancel{background:#ffffff0d;color:var(--text-muted);border:1px solid rgba(255,255,255,.1)}.admin-app .btn-cancel:hover{color:var(--text-secondary);border-color:var(--border-cyan)}.admin-app .btn-sm{padding:5px 12px;font-size:.72rem}.admin-app .table-scroll{width:100%;overflow-x:auto;border-radius:8px}.admin-app table{width:100%;min-width:640px;border-collapse:collapse;background:var(--bg-panel);border:1px solid var(--border-cyan);border-radius:8px;overflow:hidden;box-shadow:0 0 15px #00e5ff0d}.admin-app thead th{text-align:left;padding:12px 14px;background:#0c1a1e;color:var(--cyan-dim);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid var(--border-cyan);position:sticky;top:0;z-index:1}.admin-app thead th.th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.admin-app thead th.th-sortable:hover,.admin-app .th-sort-arrow{color:var(--cyan)}.admin-app .pagination{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:12px}.admin-app .pagination-info{font-size:.78rem;color:var(--text-secondary)}.admin-app tbody td{padding:10px 14px;border-top:1px solid rgba(0,229,255,.06);font-size:.88rem;color:var(--text-main)}.admin-app tbody tr{transition:background .15s}.admin-app tbody tr:hover{background:#00e5ff0d}.admin-app .actions{display:flex;gap:6px}.admin-app .type-badge-sm{display:inline-block;padding:2px 8px;border-radius:3px;font-size:.72rem;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:.3px}.admin-app .type-normal{background:#a8a878}.admin-app .type-fire{background:#f08030}.admin-app .type-water{background:#6890f0}.admin-app .type-electric{background:#f8d030;color:#333}.admin-app .type-grass{background:#78c850}.admin-app .type-ice{background:#98d8d8;color:#333}.admin-app .type-fighting{background:#c03028}.admin-app .type-poison{background:#a040a0}.admin-app .type-ground{background:#e0c068;color:#333}.admin-app .type-flying{background:#a890f0}.admin-app .type-psychic{background:#f85888}.admin-app .type-bug{background:#a8b820}.admin-app .type-rock{background:#b8a038}.admin-app .type-ghost{background:#705898}.admin-app .type-dragon{background:#7038f8}.admin-app .type-dark{background:#705848}.admin-app .type-steel{background:#b8b8d0;color:#333}.admin-app .type-fairy{background:#ee99ac}.admin-app .modal-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;justify-content:center;align-items:flex-start;padding-top:50px}.admin-app .modal-overlay.active{display:flex}.admin-app .modal-confirm{width:420px}.admin-app .modal-confirm .confirm-message{white-space:pre-line;line-height:1.5;margin:8px 0}.admin-app .toast-stack{position:fixed;top:16px;right:16px;z-index:1100;display:flex;flex-direction:column;gap:8px;max-width:360px}.admin-app .toast{background:#0c0c1a;border:1px solid var(--border-strong);border-left-width:4px;border-radius:6px;padding:12px 16px;font-size:.85rem;line-height:1.4;color:var(--text-main);white-space:pre-line;box-shadow:0 8px 24px #00000080;cursor:pointer;animation:toast-in .18s ease-out}@keyframes toast-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.admin-app .toast-success{border-left-color:var(--success)}.admin-app .toast-error{border-left-color:var(--red)}.admin-app .toast-info{border-left-color:var(--cyan)}.admin-app .modal{background:#0c0c1a;border:1px solid var(--border-strong);border-radius:12px;width:580px;max-width:95vw;max-height:82vh;display:flex;flex-direction:column;box-shadow:0 0 30px #00e5ff26,0 8px 32px #0009}.admin-app .modal.modal-wide{width:1240px;max-height:90vh}.admin-app .modal.modal-xwide{width:98vw;max-width:98vw;max-height:calc(100vh - 70px)}.admin-app .modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-cyan);background:#00e5ff08}.admin-app .modal-header h3{font-size:.95rem;color:var(--cyan);font-weight:700;letter-spacing:1px}.admin-app .modal-close{background:none;border:none;color:var(--text-muted);font-size:1.4rem;cursor:pointer;transition:color .2s;line-height:1}.admin-app .modal-close:hover{color:var(--red)}.admin-app .modal-body{padding:20px;overflow-y:auto;flex:1}.admin-app .modal-footer{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:14px 20px;border-top:1px solid var(--border-cyan);background:#00e5ff05}.admin-app .modal-footer.modal-footer-spread{justify-content:space-between}.admin-app .modal-footer-right{display:flex;align-items:center;gap:10px}.admin-app .form-group{margin-bottom:14px}.admin-app .form-group label{display:block;font-size:.7rem;color:var(--text-secondary);margin-bottom:5px;text-transform:uppercase;letter-spacing:1px;font-weight:600}.admin-app .form-group input,.admin-app .form-group select,.admin-app .form-group textarea{width:100%;padding:9px 12px;background:var(--bg-input);border:1px solid var(--border-cyan);border-radius:6px;color:var(--text-main);font-family:Segoe UI,system-ui,sans-serif;font-size:.9rem;transition:border-color .2s,box-shadow .2s}.admin-app .form-group input:focus,.admin-app .form-group select:focus,.admin-app .form-group textarea:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 8px #00e5ff26}.admin-app .form-group input[readonly]{opacity:.5;cursor:not-allowed}.admin-app .form-group input[type=checkbox]{width:auto;flex-shrink:0}.admin-app .form-group select{cursor:pointer}.admin-app .form-group select option{background:#0c0c1a;color:var(--text-main)}.admin-app .form-group textarea{resize:vertical;min-height:60px}.admin-app .form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:end}.admin-app .form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;align-items:end}.admin-app .evs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.admin-app .evs-grid label{font-size:.68rem;color:var(--text-muted)}.admin-app .evs-grid input{width:100%;padding:6px;text-align:center}.admin-app .multi-select{display:flex;flex-wrap:wrap;gap:6px;padding:10px;background:var(--bg-input);border:1px solid var(--border-cyan);border-radius:6px;max-height:170px;overflow-y:auto}.admin-app .multi-select label{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;background:#00e5ff0f;border:1px solid rgba(0,229,255,.1);border-radius:4px;font-size:.78rem;cursor:pointer;text-transform:none;letter-spacing:0;color:var(--text-main);transition:background .15s,border-color .15s}.admin-app .multi-select label:hover{background:#00e5ff1f;border-color:var(--border-cyan)}.admin-app .multi-select input[type=checkbox]{accent-color:var(--cyan);width:14px;height:14px}.admin-app .boss-label{display:inline-flex;align-items:center;gap:8px;font-size:.85rem;cursor:pointer;text-transform:none;letter-spacing:0;color:var(--orange);font-weight:600}.admin-app .boss-label input[type=checkbox]{accent-color:var(--orange);width:16px;height:16px}.admin-app .editor-topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 0;margin-bottom:12px;border-bottom:1px solid var(--border-cyan);flex-shrink:0;flex-wrap:wrap;gap:8px}.admin-app .editor-title{font-size:1rem;font-weight:700;color:var(--cyan);letter-spacing:1px}.admin-app .editor-layout{display:flex;gap:16px;flex:1;min-height:0}.admin-app .editor-sidebar{width:320px;min-width:320px;overflow-y:auto;display:flex;flex-direction:column;gap:10px}.admin-app .editor-panel{background:var(--bg-panel);border:1px solid var(--border-cyan);border-radius:8px;padding:10px}.admin-app .editor-panel h4{font-size:.72rem;text-transform:uppercase;letter-spacing:1px;color:var(--cyan-dim);margin-bottom:8px;font-weight:700}.admin-app .config-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;align-items:stretch;margin-bottom:24px}.admin-app .config-grid .editor-panel{margin-bottom:0}.admin-app .config-grid .span-full{grid-column:1 / -1}.admin-app .editor-main{flex:1;display:flex;min-width:0;min-height:0}.admin-app .tile-def-library-sidebar{width:300px;min-width:300px;height:100%;overflow-y:auto;border:1px solid var(--border-cyan);border-radius:8px;background:var(--bg-panel);padding:10px 12px;display:flex;flex-direction:column;gap:8px}.admin-app .map-canvas-wrap{flex:1;overflow:hidden;border:1px solid var(--border-cyan);border-radius:8px;background:#0a0a12;position:relative;min-height:0;display:flex;flex-direction:column}.admin-app .map-canvas-stage{flex:1;min-height:0;overflow:auto;display:flex;align-items:center;justify-content:center}.admin-app .map-editor-canvas{cursor:crosshair;image-rendering:pixelated;flex-shrink:0}.admin-app .map-zoom-controls{position:sticky;top:8px;left:8px;float:left;margin:8px;z-index:5;display:flex;align-items:center;gap:6px;background:#000a14d9;border:1px solid var(--border-cyan);border-radius:6px;padding:4px 8px}.admin-app .map-canvas-wrap .map-zoom-controls{position:static;float:none;flex-shrink:0;margin:8px 8px 0;width:fit-content}.admin-app .map-canvas-wrap .map-zoom-controls.tile-def-zoom-overlay{position:absolute;float:none;margin:0;width:auto}.admin-app .map-zoom-controls input[type=range]{width:100px;accent-color:var(--cyan)}.admin-app .map-zoom-value{font-size:.72rem;color:var(--cyan-dim);min-width:34px;text-align:right}.admin-app .map-editor-canvas.preview{cursor:default}.admin-app .layer-radios{display:flex;flex-direction:column;gap:4px}.admin-app .layer-radio{display:flex;align-items:center;gap:6px;font-size:.82rem;color:var(--text-main);cursor:pointer;padding:3px 6px;border-radius:4px;transition:background .15s}.admin-app .layer-radio:hover{background:#00e5ff14}.admin-app .layer-radio input{accent-color:var(--cyan)}.admin-app .tool-buttons{display:flex;flex-wrap:wrap;gap:4px}.admin-app .btn-tool{background:#00e5ff14;color:var(--text-secondary);border:1px solid var(--border-cyan);padding:5px 10px;font-size:.72rem}.admin-app .btn-tool.active{background:#00e5ff33;color:var(--cyan);border-color:var(--cyan);box-shadow:0 0 6px #00e5ff33}.admin-app .npc-list{margin-top:6px;display:flex;flex-direction:column;gap:4px;max-height:180px;overflow-y:auto}.admin-app .npc-item,.admin-app .zone-item{display:flex;justify-content:space-between;align-items:center;padding:4px 8px;background:#00e5ff0a;border:1px solid rgba(0,229,255,.08);border-radius:4px;font-size:.75rem;color:var(--text-main)}.admin-app .npc-item .btn-delete,.admin-app .zone-item .btn-delete{padding:2px 6px;font-size:.65rem}.admin-app .npc-buttons{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:4px}.admin-app .tile-def-tileset-row{display:flex;gap:8px}.admin-app .tile-def-encounter-weights{display:flex;flex-direction:column;gap:4px;max-height:200px;overflow-y:auto}.admin-app .tile-def-encounter-weight-row{display:flex;align-items:center;gap:8px;font-size:.85rem}.admin-app .tile-def-encounter-weight-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-app .tile-def-encounter-weight-pct{min-width:40px;text-align:right;color:var(--text-muted, #888)}.admin-app .tile-def-step-nav{display:flex;gap:4px;margin-bottom:14px}.admin-app .tile-def-step-nav .btn{min-width:30px}.admin-app .tile-def-tileset-row select{flex:1;min-width:0}.admin-app .tile-def-modal-picker-wrap{position:relative;margin:8px 0;border:1px solid var(--border-cyan);border-radius:6px}.admin-app .tile-def-checker-bg{background-color:#050510;background-image:linear-gradient(45deg,#14141f 25%,transparent 25%),linear-gradient(-45deg,#14141f 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#14141f 75%),linear-gradient(-45deg,transparent 75%,#14141f 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0px}.admin-app .tile-def-modal-picker-scroll{max-height:76vh;overflow:auto}.admin-app .tile-def-crop-section{margin:10px 0;padding:10px;border:1px solid var(--border-cyan);border-radius:6px;background:var(--bg-input)}.admin-app .tile-def-crop-header{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}.admin-app .tile-def-crop-tools{display:flex;gap:6px}.admin-app .tile-def-paint-palette{align-items:center;margin-top:6px;flex-wrap:wrap}.admin-app .tile-def-paint-palette input[type=color]{width:30px;height:26px;padding:0;border:1px solid var(--border-cyan);border-radius:4px;background:none;cursor:pointer}.admin-app .tile-def-palette-swatch{width:22px;height:22px;border-radius:4px;border:1px solid rgba(255,255,255,.25);cursor:pointer;padding:0}.admin-app .tile-def-palette-swatch.active{border:2px solid #00e5ff}.admin-app .tile-def-crop-wrap-outer{position:relative}.admin-app .tile-def-zoom-overlay{position:absolute;top:8px;left:8px;z-index:5;display:flex;flex-direction:column;align-items:center;gap:4px;background:none;border:none;padding:0}.admin-app .tile-def-zoom-overlay .btn{box-shadow:0 1px 4px #000000b3}.admin-app .tile-def-zoom-overlay .map-zoom-value,.admin-app .tile-def-zoom-overlay .tile-def-mask-label{text-shadow:0 0 3px #000,0 0 3px #000,0 1px 2px #000}.admin-app .tile-def-zoom-overlay input[type=range]{writing-mode:vertical-lr;direction:rtl;width:6px;height:90px;accent-color:var(--cyan);filter:drop-shadow(0 1px 3px rgba(0,0,0,.8))}.admin-app .scale-controls-bar{display:flex;align-items:center;gap:8px;background:#001423e6;border:1px solid var(--cyan);border-radius:6px;padding:6px 10px;margin:8px 0}.admin-app .scale-controls-bar input[type=range]{width:140px;accent-color:var(--cyan)}.admin-app .scale-controls-bar .map-zoom-value{color:var(--cyan);font-weight:600}.admin-app .tile-def-crop-wrap{display:flex;justify-content:flex-start;align-items:flex-start;overflow:auto;max-height:74vh;padding:12px;border-radius:6px;background-image:linear-gradient(45deg,#444 25%,transparent 25%),linear-gradient(-45deg,#444 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#444 75%),linear-gradient(-45deg,transparent 75%,#444 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0px;background-color:#222}.admin-app .tile-def-crop-canvas{cursor:none;image-rendering:pixelated;margin:auto}.admin-app .tile-def-collision-canvas{cursor:pointer}.admin-app .tile-def-modal-picker{display:block;cursor:crosshair;image-rendering:pixelated}.admin-app .tile-def-modal-picker.pan-mode{cursor:grab}.admin-app .tile-def-modal-picker.pan-mode:active{cursor:grabbing}.admin-app .tile-def-scale-canvas{cursor:default;image-rendering:pixelated;margin:auto}.admin-app .tile-def-scale-canvas.pan-mode{cursor:grab}.admin-app .tile-def-scale-canvas.pan-mode:active{cursor:grabbing}.admin-app .tile-def-mask-label{font-size:.7rem;color:var(--text-muted);margin:2px 0 0}.admin-app .tile-def-library-header{display:flex;align-items:center;gap:12px}.admin-app .tile-def-category-filter{width:100%;margin-top:8px}.admin-app .tile-def-grid{margin-top:8px;display:flex;flex-wrap:wrap;gap:8px}.admin-app .tile-def-thumb-wrap{display:flex;flex-direction:column;align-items:center;gap:2px;width:64px}.admin-app .tile-def-actions{display:flex;gap:4px}.admin-app .tile-def-thumb{image-rendering:pixelated;border:1px solid var(--border-cyan);border-radius:4px;cursor:pointer;padding:0;background-color:var(--bg-input)}.admin-app .tile-def-thumb.active{border-color:var(--cyan);box-shadow:0 0 6px var(--cyan-glow)}.admin-app .tile-def-empty{font-size:.75rem;color:var(--text-muted);margin:4px 0 0}.admin-app .sprite-grid{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}.admin-app .sprite-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px;background:var(--bg-panel);border:1px solid var(--border-cyan);border-radius:8px;cursor:pointer;font-family:inherit;color:inherit}.admin-app .sprite-card.active{border-color:var(--cyan);box-shadow:0 0 6px var(--cyan-glow)}.admin-app .sprite-card-badge{font-size:.65rem;color:var(--cyan)}.admin-app .sprite-card-thumb{position:relative;overflow:hidden;background-color:#1a1a2e;border:1px solid var(--border-cyan);border-radius:4px}.admin-app .sprite-card-thumb-content{position:absolute;left:0;bottom:0;image-rendering:pixelated}.admin-app .sprite-card-name{font-size:.75rem;color:var(--text-secondary);text-align:center;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-app .sprite-preview-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.admin-app .sprite-preview-frame-wrap{display:flex;flex-direction:column;align-items:center;gap:2px;width:90px}.admin-app .sprite-preview-frame{position:relative;overflow:hidden;background-color:#1a1a2e;border:1px solid var(--border-cyan);border-radius:4px;cursor:pointer;padding:0}.admin-app .sprite-preview-frame:hover{border-color:var(--cyan);box-shadow:0 0 6px var(--cyan-glow)}.admin-app .sprite-preview-frame-actions{display:flex;gap:4px}.admin-app .sprite-preview-frame-actions .btn{padding:2px 6px;font-size:.7rem}.admin-app .transition-config{display:flex;flex-direction:column;gap:6px;margin-bottom:6px}.admin-app .transition-item{display:flex;align-items:center;gap:4px;font-size:.75rem;padding:4px 6px;background:#00e5ff0a;border:1px solid rgba(0,229,255,.08);border-radius:4px}.admin-app .transition-item select,.admin-app .transition-item input{padding:2px 4px;font-size:.72rem;background:var(--bg-input);border:1px solid var(--border-cyan);color:var(--text-main);border-radius:3px;width:60px}.admin-app .transition-item select{width:70px}.admin-app .tab-desc{color:var(--text-muted);font-size:.85rem;margin-bottom:20px;max-width:760px;line-height:1.5}.admin-app .tag-input{display:flex;flex-wrap:wrap;gap:6px;padding:8px;background:var(--bg-input);border:1px solid var(--border-cyan);border-radius:6px}.admin-app .tag-input:focus-within{border-color:var(--cyan);box-shadow:0 0 8px #00e5ff26}.admin-app .tag-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 6px 3px 10px;background:#00e5ff1f;border:1px solid var(--border-cyan);border-radius:4px;font-size:.78rem;color:var(--text-main);white-space:nowrap}.admin-app .tag-chip button{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.9rem;line-height:1;padding:0 2px}.admin-app .tag-chip button:hover{color:var(--red)}.admin-app .tag-input-field{border:none;background:none;flex:1;min-width:120px;padding:3px;color:var(--text-main);font-size:.85rem;font-family:Segoe UI,system-ui,sans-serif}.admin-app .tag-input-field:focus{outline:none}.admin-app .param-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:5px 0;font-size:.82rem;border-bottom:1px solid rgba(0,229,255,.06)}.admin-app .param-row:last-child{border-bottom:none}.admin-app .param-label{color:var(--text-secondary);cursor:help;border-bottom:1px dotted var(--text-muted)}.admin-app .param-row input{width:70px;text-align:center}.admin-app .raw-toggle{display:flex;align-items:center;gap:6px;font-size:.78rem;color:var(--text-muted);margin:10px 0 0;cursor:pointer;text-transform:none;letter-spacing:0}.admin-app .raw-toggle input{accent-color:var(--cyan)}.admin-app .bans-summary{font-size:.8rem;color:var(--text-secondary);cursor:help}.admin-app .search-select{position:relative}.admin-app .search-select input.invalid{border-color:var(--orange)}.admin-app .search-select-dropdown{position:absolute;top:calc(100% + 2px);left:0;right:0;max-height:220px;overflow-y:auto;background:#0c0c1a;border:1px solid var(--border-strong);border-radius:6px;box-shadow:0 8px 24px #00000080;z-index:20}.admin-app .search-select-option{padding:7px 12px;font-size:.85rem;color:var(--text-main);cursor:pointer}.admin-app .search-select-option:hover{background:#00e5ff1f}.admin-app .field-warning{display:block;color:var(--orange);font-size:.72rem;margin-top:4px}.admin-app .evs-total{font-size:.78rem;color:var(--text-muted);margin-top:6px}.admin-app .evs-total.over{color:var(--orange);font-weight:700}.admin-app .engine-list{display:flex;flex-direction:column;gap:12px}.admin-app .engine-card{background:var(--bg-input);border:1px solid var(--border-cyan);border-radius:6px;padding:12px 14px}.admin-app .engine-card-header{display:flex;align-items:center;gap:10px;margin-bottom:6px}.admin-app .engine-name{font-weight:700;color:var(--text-main)}.admin-app .engine-badge{font-size:.65rem;font-weight:900;padding:2px 8px;border-radius:4px;letter-spacing:1px;text-transform:uppercase}.admin-app .engine-badge-active{background:#00e67626;color:var(--success);border:1px solid rgba(0,230,118,.4)}.admin-app .engine-badge-planned{background:#ff6b3526;color:var(--orange);border:1px solid rgba(255,107,53,.4)}.admin-app .engine-desc{color:var(--text-secondary);font-size:.85rem;line-height:1.5;margin-bottom:6px}.admin-app .engine-features{margin:0;padding-left:18px;color:var(--text-muted);font-size:.78rem;line-height:1.6}.admin-app .overview-stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px}.admin-app .overview-stat-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:20px 12px;background:var(--bg-panel);border:1px solid var(--border-cyan);border-radius:10px;cursor:pointer;font-family:inherit;color:inherit;transition:transform .15s,border-color .15s,box-shadow .15s}.admin-app .overview-stat-card:hover{transform:translateY(-2px);border-color:var(--cyan);box-shadow:0 6px 18px #00e5ff26}.admin-app .overview-stat-icon{font-size:1.6rem;filter:drop-shadow(0 0 6px rgba(0,229,255,.3))}.admin-app .overview-stat-value{font-size:1.6rem;font-weight:900;color:var(--cyan);text-shadow:0 0 10px rgba(0,229,255,.3)}.admin-app .overview-stat-label{font-size:.72rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.8px;text-align:center}.admin-app .admin-gate{display:flex;align-items:center;justify-content:center;flex:1;text-align:center;padding:24px}.admin-app .admin-gate p{color:var(--text-secondary);font-size:.95rem}@media (max-width: 900px){.admin-app .editor-layout{flex-direction:column;height:auto}.admin-app .editor-sidebar{width:100%;min-width:0;max-height:none}.admin-app .tile-def-library-sidebar{width:100%;min-width:0;height:auto;max-height:260px}.admin-app .editor-main{min-height:60vh}}@media (max-width: 700px){.admin-app .form-row,.admin-app .form-row-3{grid-template-columns:1fr}.admin-app .evs-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.admin-app header{padding:12px 14px;flex-wrap:wrap;gap:8px}.admin-app header h1{font-size:1.05rem}.admin-app .back-link{margin-left:0}.admin-app .sidebar-toggle{display:inline-flex}.admin-app .sidebar{position:fixed;top:0;left:0;bottom:0;z-index:200;width:240px;transform:translate(-100%);transition:transform .2s ease;box-shadow:4px 0 20px #00000080}.admin-app .sidebar.sidebar-open{transform:translate(0)}.admin-app .sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;background:#0000008c}.admin-app .tab{padding:10px 12px;font-size:.78rem}.admin-app .tab-content{padding:14px}.admin-app .toolbar-right{width:100%}.admin-app .search-input{width:100%;flex:1}.admin-app .modal-overlay{padding-top:0;align-items:stretch}.admin-app .modal{width:100%;max-width:100vw;max-height:100vh;border-radius:0}}.admin-sprite-thumb{width:34px;height:34px;object-fit:contain;image-rendering:pixelated}.admin-sprite-preview{width:40px;height:40px}.admin-app .teams-preview-section{margin-top:32px}.admin-app .teams-preview-empty{color:var(--text-muted);font-size:.9rem}.admin-app .teams-preview-list{display:grid;gap:16px;margin-top:16px}.admin-app .team-preview-card{background:var(--bg-panel);border:1px solid var(--border-cyan);border-radius:8px;padding:12px;transition:all .2s ease}.admin-app .team-preview-card:hover{border-color:var(--border-strong);box-shadow:0 0 12px #00e5ff1a}.admin-app .team-preview-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--border-cyan);gap:12px}.admin-app .team-preview-header strong{color:var(--cyan);font-weight:600;font-size:.95rem}.admin-app .team-preview-slot-name{color:var(--text-secondary);font-size:.85rem;flex:1;text-align:center}.admin-app .team-preview-cost{color:var(--success);font-weight:600;font-size:.9rem;padding:4px 8px;border-radius:4px;background:#00e6761a}.admin-app .team-preview-cost.over-budget{color:var(--red);background:#ff3d001a}.admin-app .team-preview-roster{display:flex;gap:8px;flex-wrap:wrap}.admin-app .team-preview-member{display:flex;align-items:center;gap:6px;background:var(--bg-input);border-radius:4px;padding:6px 10px;font-size:.85rem;border:1px solid rgba(0,229,255,.1);transition:all .2s ease}.admin-app .team-preview-member:hover{border-color:var(--border-cyan);background:#00e5ff0d}.admin-app .team-preview-position{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;border-radius:50%;background:var(--cyan);color:#000;font-size:.7rem;font-weight:700}.admin-app .team-preview-name{color:var(--text-main);font-weight:500}.admin-app .team-preview-member-cost{color:var(--text-muted);font-size:.75rem}.admin-app .td-checkbox{width:40px;text-align:center}.admin-app .td-checkbox input[type=checkbox]{cursor:pointer;width:18px;height:18px;accent-color:var(--cyan)}.admin-app .row-selected{background:#00e5ff14;border-left:2px solid var(--cyan)}.admin-app .selection-count{font-size:.9rem;color:var(--cyan);font-weight:600;padding:6px 12px;background:#00e5ff1a;border-radius:4px}.admin-app .btn-bulk{background:linear-gradient(135deg,var(--cyan),var(--cyan-dim));color:#000;font-weight:600;border:none;padding:8px 16px;border-radius:6px;cursor:pointer;transition:all .2s ease}.admin-app .btn-bulk:hover{transform:translateY(-1px);box-shadow:0 4px 12px var(--cyan-glow)}.admin-app .bulk-field-selection{max-height:60vh;overflow-y:auto;padding:12px}.admin-app .bulk-hint{color:var(--text-muted);font-size:.9rem;margin-bottom:16px}.admin-app .bulk-field-section{margin-bottom:24px;padding:16px;background:#00e5ff08;border:1px solid var(--border-cyan);border-radius:8px}.admin-app .bulk-section-title{font-size:1rem;color:var(--cyan);margin-bottom:12px;font-weight:600;text-transform:uppercase;letter-spacing:1px}.admin-app .bulk-field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}.admin-app .bulk-field-item{display:flex;flex-direction:column;gap:6px}.admin-app .bulk-field-item label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:.9rem;color:var(--text-secondary)}.admin-app .bulk-field-item input[type=checkbox]{width:18px;height:18px;accent-color:var(--cyan)}.admin-app .bulk-field-input{margin-left:26px}.admin-app .bulk-field-input input,.admin-app .bulk-field-input select{width:100%;padding:6px 10px;background:var(--bg-input);border:1px solid var(--border-cyan);border-radius:4px;color:var(--text-main);font-size:.9rem}.admin-app .bulk-preview{padding:12px}.admin-app .bulk-preview-summary{font-size:1.1rem;color:var(--text-main);margin-bottom:8px}.admin-app .bulk-preview-changes{background:#00e5ff0d;border-left:3px solid var(--cyan);padding:12px;border-radius:4px;color:var(--cyan-dim);font-size:.95rem}.admin-app .bulk-preview-detail{margin-top:16px;max-height:400px;overflow-y:auto;border:1px solid var(--border-cyan);border-radius:6px;padding:8px;background:#000a1466}.admin-app .bulk-preview-detail table{width:100%;font-size:.85rem}.admin-app .bulk-old-value{color:var(--text-muted);text-decoration:line-through}.admin-app .bulk-new-value{color:var(--success);font-weight:600}.admin-app .graph-editor{display:flex;flex-direction:column;gap:10px}.admin-app .graph-editor-palette{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.admin-app .graph-editor-palette-sep{width:1px;align-self:stretch;background:var(--border-cyan);margin:0 4px}.admin-app .graph-editor-canvas{position:relative;width:100%;height:560px;min-height:320px;max-height:85vh;resize:vertical;overflow:hidden;border:1px solid var(--border-cyan);border-radius:8px;background:var(--bg-input)}.admin-app .graph-editor-legend{position:absolute;bottom:10px;left:10px;z-index:5;display:flex;gap:12px;padding:6px 10px;background:#000a14d9;border:1px solid var(--border-cyan);border-radius:6px;font-size:.7rem;color:var(--text-secondary);pointer-events:none}.admin-app .graph-editor-legend-item{display:inline-flex;align-items:center;gap:5px}.admin-app .graph-editor-legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.admin-app .graph-editor-canvas .react-flow__attribution{display:none}.admin-app .graph-editor-canvas .react-flow__minimap{border:1px solid var(--border-cyan);border-radius:6px;background:var(--bg-deep)}.admin-app .graph-node{min-width:190px;background:#000a14eb;border:2px solid var(--border-cyan);border-radius:8px;padding:10px 12px 12px;font-size:.78rem;position:relative;box-shadow:0 2px 10px #00000059}.admin-app .graph-node-value{border-color:var(--cyan)}.admin-app .graph-node-effect{border-color:var(--orange)}.admin-app .graph-node-root{border-color:var(--gold, #d4af37);border-width:3px}.admin-app .graph-node-selected{border-color:var(--success);box-shadow:0 0 0 3px #00e67859,0 2px 10px #00000059}.admin-app .graph-node-unknown{min-width:160px;padding:10px;color:var(--red);border:2px dashed var(--red);border-radius:8px;font-size:.78rem}.admin-app .graph-node-title{font-weight:700;font-size:.85rem;margin-bottom:10px;letter-spacing:.3px;cursor:help}.admin-app .graph-node-effect .graph-node-title{color:var(--orange)}.admin-app .graph-node-value .graph-node-title{color:var(--cyan)}.admin-app .graph-node-root .graph-node-title{color:var(--gold, #d4af37)}.admin-app .graph-node-pin{position:relative;height:20px;display:flex;align-items:center;font-size:.72rem;color:var(--text-secondary)}.admin-app .graph-node-pin-in{padding-left:12px}.admin-app .graph-node-pin-out{justify-content:flex-end;padding-right:12px}.admin-app .graph-node-param{display:flex;flex-direction:column;gap:3px;margin:6px 0}.admin-app .graph-node-param label{font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px}.admin-app .graph-node-param input,.admin-app .graph-node-param select{width:100%;font-size:.78rem;padding:4px 6px;background:var(--bg-deep);border:1px solid var(--border-cyan);border-radius:4px;color:var(--text-main)}.admin-app .graph-editor-canvas .react-flow__handle{width:10px;height:10px;border:2px solid var(--bg-deep);background:var(--cyan)}.admin-app .mode-config-title{font-size:.95rem;text-transform:uppercase;letter-spacing:1px;color:var(--cyan);margin-bottom:6px}.admin-app .mode-config-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.admin-app .mode-config-card{background:var(--bg-panel);border:1px solid var(--border-cyan);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:10px}.admin-app .mode-config-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.admin-app .mode-config-card-head h4{margin:0;font-size:.95rem;color:var(--text-main);font-weight:700}.admin-app .engine-badge-select{font-size:.65rem;text-transform:uppercase;letter-spacing:.5px;padding:3px 8px;border-radius:10px;font-weight:700;white-space:nowrap;cursor:pointer}.admin-app .engine-showdown{background:#00e5ff26;color:var(--cyan);border:1px solid var(--border-strong)}.admin-app .engine-custom{background:#ff6b3526;color:var(--orange);border:1px solid var(--orange-glow)}.admin-app .mode-config-block{display:flex;flex-direction:column;gap:4px}.admin-app .mode-config-block-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.admin-app .mode-config-block-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.5px;color:var(--cyan-dim)}.admin-app .mode-config-summary{font-size:.75rem;color:var(--text-secondary);margin:0}.admin-app .link-btn{background:none;border:none;padding:0;color:var(--cyan-dim);font-size:.7rem;text-decoration:underline;cursor:pointer}.admin-app .link-btn:hover{color:var(--cyan)}.admin-app .team-builder-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:14px}.admin-app .team-builder{display:flex;flex-direction:column;gap:8px;background:var(--bg-input);border:1px solid var(--border-cyan);border-radius:6px;padding:10px}.admin-app .team-builder-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.admin-app .team-builder-head label{font-size:.78rem;color:var(--text-muted);text-transform:none;letter-spacing:0}.admin-app .team-builder-slot{border:1px solid rgba(0,229,255,.1);border-radius:6px;padding:6px 8px;background:#00e5ff08}.admin-app .team-builder-slot-row{display:flex;align-items:center;gap:6px}.admin-app .team-builder-species{flex:1;min-width:0}.admin-app .team-builder-level{width:60px;flex:none;text-align:center}.admin-app .team-builder-items{margin-top:6px}.admin-app .team-builder-items summary{cursor:pointer;font-size:.72rem;color:var(--cyan-dim)}.admin-app .team-builder-items[open] summary{color:var(--cyan)}.admin-app .item-qty-list{display:flex;flex-direction:column;gap:4px;margin-top:6px;max-height:220px;overflow-y:auto}.admin-app .item-qty-row{display:flex;align-items:center;gap:8px;padding:3px 4px}.admin-app .item-qty-name{flex:1;min-width:0;font-size:.76rem;color:var(--text-main)}.admin-app .item-qty-value{min-width:16px;text-align:center;font-size:.78rem;color:var(--cyan)}@media (max-width: 900px){.admin-app .team-builder-cols{grid-template-columns:1fr}}.admin-app .npc-option-card{display:flex;flex-direction:column;gap:8px;background:var(--bg-input);border:1px solid var(--border-cyan);border-radius:6px;padding:10px;margin-bottom:10px}.admin-app .npc-shop-items{display:flex;flex-direction:column;gap:2px}.admin-app .npc-battle-stage{border-left:2px solid var(--border-cyan);padding-left:10px;margin-bottom:10px}.admin-app .npc-option-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.admin-app .npc-team-builder{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;margin-top:6px;margin-bottom:10px}.admin-app .npc-team-slot{display:flex;flex-direction:column;gap:8px;background:var(--bg-input);border:1px solid rgba(0,229,255,.15);border-radius:8px;padding:10px 12px;transition:border-color .15s}.admin-app .npc-team-slot:hover{border-color:var(--border-cyan)}.admin-app .npc-team-slot-sprite-row{display:flex;justify-content:center}.admin-app .npc-team-slot-sprite{width:56px;height:56px;object-fit:contain;image-rendering:pixelated}.admin-app .npc-team-slot-sprite-empty{border-radius:6px;background:#ffffff0a;border:1px dashed rgba(255,255,255,.12)}.admin-app .npc-team-slot-row{display:flex;align-items:center;gap:8px}.admin-app .npc-team-slot-species{flex:1;min-width:0;font-size:1.05rem;font-weight:700;padding:8px 10px}.admin-app .btn-gear{flex:none;font-size:.95rem}.admin-app .btn-gear.active{color:var(--cyan);border-color:var(--cyan)}.admin-app .npc-team-slot-advanced{display:flex;flex-direction:column;gap:10px;padding-top:8px;border-top:1px solid rgba(0,229,255,.1)}.admin-app .npc-team-slot-stats-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.admin-app .npc-team-slot-stats-head label{font-size:.78rem;color:var(--text-muted);text-transform:none;letter-spacing:0}.admin-app .npc-team-slot-moves{display:grid;grid-template-columns:1fr 1fr;gap:6px}.admin-app .resource-section>summary{cursor:pointer;font-size:.85rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);padding:6px 0;border-bottom:1px solid var(--border-cyan);list-style:revert}.admin-app .resource-section>summary:hover{color:var(--cyan-dim)}.admin-app .studio-stage{position:relative;margin-top:16px;height:220px;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,rgba(0,229,255,.08) 0%,transparent 70%),#0d0d0d;border:1px solid var(--border-cyan);border-radius:6px}.admin-app .studio-stage-sprite{max-height:180px;image-rendering:pixelated}@keyframes studio-anim-appear-kf{0%{transform:scale(.3) translateY(24px);opacity:0;filter:brightness(2)}60%{transform:scale(1.08) translateY(-4px);opacity:1;filter:brightness(1.2)}to{transform:scale(1) translateY(0);opacity:1;filter:brightness(1)}}.admin-app .studio-anim-appear{animation:studio-anim-appear-kf ease-out both}.admin-app .studio-capture-stage{margin-top:16px;height:220px;min-height:0;background:#0d0d0d;border:1px solid var(--border-cyan);border-radius:6px}.admin-app .studio-capture-sprite{position:absolute;left:76%;top:22%;transform:translate(-50%,-50%);max-height:110px;image-rendering:pixelated}.admin-app .studio-grass-canvas{margin-top:16px;image-rendering:pixelated;width:384px;height:256px;border:1px solid var(--border-cyan);border-radius:4px}:root{--cyan: #00e5ff;--bg: #0a0a14;--text-main: #e8f4ff;--base-font-size: 16px;--victory: #3ddc84;--defeat: #ff4d5e;--warn: #ffcc4d;--gold: #ffd54f;--panel-bg: rgba(6, 14, 24, .94);--panel-bg-soft: rgba(6, 14, 24, .82);--panel-border: rgba(0, 229, 255, .4);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--radius-sm: 6px;--radius-md: 10px;--transition-fast: .15s ease;--transition-base: .25s cubic-bezier(.2, .8, .3, 1.2);--hud-accent: var(--cyan);--hud-accent-soft: rgba(0, 229, 255, .18)}*{box-sizing:border-box}body{margin:0;font-family:system-ui,sans-serif;background:var(--bg);color:var(--text-main)}.hidden{display:none!important}#root{height:100vh}.login-screen{position:relative;height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;overflow:hidden;background:radial-gradient(ellipse at 50% 20%,rgba(0,229,255,.12) 0%,transparent 60%),radial-gradient(ellipse at 50% 100%,#10182c 0%,var(--bg) 70%)}.login-screen:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(0,229,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(0,229,255,.05) 1px,transparent 1px);background-size:36px 36px;-webkit-mask-image:radial-gradient(ellipse at 50% 30%,black 0%,transparent 75%);mask-image:radial-gradient(ellipse at 50% 30%,black 0%,transparent 75%);pointer-events:none}.login-title{position:relative;margin:0;font-size:2.4rem;font-weight:800;letter-spacing:2px;color:var(--text-main);text-shadow:0 0 18px rgba(0,229,255,.55),0 0 2px rgba(0,229,255,.8)}.login-subtitle{position:relative;margin:-14px 0 0;font-size:.8rem;letter-spacing:3px;text-transform:uppercase;color:var(--cyan);opacity:.75}.login-card{position:relative;width:280px;padding:24px 22px;border-radius:12px;border:1px solid rgba(0,229,255,.3);background:#000a14bf;box-shadow:0 0 30px #00e5ff14,inset 0 0 40px #00e5ff0a;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.login-screen form{display:flex;flex-direction:column;gap:12px;width:100%}.login-screen input{padding:11px 12px;border-radius:7px;border:1px solid rgba(0,229,255,.35);background:#000a1499;color:var(--text-main);font-family:inherit;font-size:.9rem;transition:border-color .15s ease,box-shadow .15s ease}.login-screen input::placeholder{color:#e8f4ff66}.login-screen input:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px #00e5ff26}.login-screen button[type=submit]{padding:11px;border-radius:7px;border:1px solid var(--cyan);background:linear-gradient(160deg,#00e5ff47,#00e5ff1a);color:var(--text-main);font-family:inherit;cursor:pointer;text-transform:uppercase;letter-spacing:1.5px;font-weight:700;font-size:.85rem;transition:transform .1s ease,box-shadow .15s ease,opacity .15s ease}.login-screen button[type=submit]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 14px #00e5ff40}.login-screen button[type=submit]:disabled{opacity:.5;cursor:not-allowed}.login-error{color:#ff9090;background:#ff3d001a;border:1px solid rgba(255,61,0,.35);border-radius:6px;padding:6px 10px;margin:0;font-size:.8rem}.login-switch{position:relative;background:none;border:none;color:var(--cyan);opacity:.85;cursor:pointer;font-size:.82rem}.login-switch:hover{opacity:1;text-decoration:underline}.loading-screen{height:100vh;display:flex;align-items:center;justify-content:center}.overworld-screen{position:relative;height:100vh;display:flex;align-items:center;justify-content:center;background:#1a1a2e}#overworld-canvas{image-rendering:pixelated;display:block}.overworld-map-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#1a1a2e;color:var(--cyan)}.overworld-map-loading-spinner{width:36px;height:36px;border-radius:50%;border:4px solid rgba(0,224,255,.2);border-top-color:var(--cyan);animation:overworld-map-loading-spin .8s linear infinite}@keyframes overworld-map-loading-spin{to{transform:rotate(360deg)}}.overworld-hud{position:absolute;top:10px;right:10px;z-index:10;display:flex;align-items:center;gap:var(--space-2);color:var(--hud-accent, var(--cyan));font-weight:600;transition:color var(--transition-base)}.overworld-hud-pseudo{padding:4px var(--space-2);font-size:13px;letter-spacing:.4px;color:var(--text-main);text-shadow:0 0 6px rgba(0,0,0,.8)}.day-night-clock{position:absolute;top:44px;left:10px;z-index:10;display:flex;flex-direction:column;align-items:center;gap:2px}.day-night-clock canvas{filter:drop-shadow(0 1px 4px rgba(0,0,0,.6))}.day-night-clock-row{display:flex;align-items:center;gap:4px}.day-night-clock-arrow{width:20px;height:20px;border-radius:50%;border:1px solid var(--cyan);background:#000a14b3;color:var(--cyan);font-size:.85rem;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;-webkit-user-select:none;user-select:none}.day-night-clock-arrow:active{background:#00e5ff40}.day-night-clock-time{font-size:.7rem;font-weight:600;color:var(--cyan);text-shadow:0 0 3px #000,0 1px 2px #000}.progression-team-rail{position:fixed;left:10px;top:144px;z-index:15;display:flex;flex-direction:column;gap:6px}.progression-team-rail-slot{cursor:pointer;display:flex;align-items:center;gap:8px;width:190px;padding:6px 10px;border-radius:10px;border:1px solid var(--cyan);background:#000a14b3;transition:all .15s ease}.progression-team-rail-slot:hover{background:#00e5ff33;transform:scale(1.04)}.progression-team-rail-sprite{width:60px;height:60px;flex-shrink:0;object-fit:contain;image-rendering:pixelated}.progression-team-rail-info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.progression-team-rail-level{font-size:.62rem;font-weight:600;color:var(--cyan);text-shadow:0 0 3px #000,0 1px 2px #000;text-align:left}.progression-team-rail-name{font-size:.75rem;font-weight:600;color:#fff;text-shadow:0 0 3px #000,0 1px 2px #000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}.progression-team-rail-hp-text{font-size:.6rem;font-weight:500;color:#d0d0d0;text-shadow:0 0 3px #000,0 1px 2px #000;text-align:left}.progression-team-rail-bar{width:100%;height:6px;border-radius:3px;background:#00000080;border:1px solid rgba(255,255,255,.15);overflow:hidden}.progression-team-rail-bar-fill{height:100%;border-radius:3px;transition:width .2s ease}.progression-team-rail-hp .progression-team-rail-bar-fill{background:#2ecc40}.progression-team-rail-xp .progression-team-rail-bar-fill{background:#2196f3}.overworld-zoom-controls{position:fixed;top:10px;left:10px;z-index:25;display:flex;align-items:center;gap:4px;padding:3px 6px;border-radius:6px;border:1px solid var(--cyan);background:#000a14b3;color:var(--text-main)}.overworld-zoom-controls button{cursor:pointer;width:16px;height:16px;padding:0;line-height:1;font-size:11px;border-radius:3px;border:1px solid var(--cyan);background:#000a14b3;color:var(--text-main);font-family:inherit}.overworld-zoom-controls input[type=range]{width:60px}.overworld-zoom-value{min-width:28px;text-align:center;font-size:10px;color:var(--cyan)}#overworld-dialogue{position:absolute;bottom:0;left:0;right:0;background:#000a14eb;border-top:2px solid var(--cyan);padding:16px 24px;z-index:20;cursor:pointer}#ow-dialogue-name{color:var(--cyan);display:block;margin-bottom:6px}.dialogue-close{cursor:pointer;margin-top:10px;padding:6px 14px;border-radius:6px;border:1px solid var(--cyan);background:#000a14b3;color:var(--text-main);font-family:inherit}.overworld-social-toggle{--notch: 6px;position:relative;cursor:pointer;display:inline-flex;align-items:center;gap:5px;padding:6px 12px 6px 10px;clip-path:polygon(var(--notch) 0,100% 0,100% calc(100% - var(--notch)),calc(100% - var(--notch)) 100%,0 100%,0 var(--notch));border:1px solid var(--hud-accent, var(--cyan));background:var(--panel-bg-soft);color:var(--text-main);font-family:inherit;font-size:12px;font-weight:600;letter-spacing:.3px;transition:background var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast),border-color var(--transition-base)}.overworld-social-toggle .hud-icon{font-size:14px;line-height:1;filter:drop-shadow(0 0 2px rgba(0,0,0,.6))}.overworld-social-toggle:hover{background:var(--hud-accent-soft, rgba(0, 229, 255, .18));transform:translateY(-1px);box-shadow:0 0 10px var(--hud-accent-soft, rgba(0, 229, 255, .35))}.overworld-social-toggle:active{transform:translateY(0)}.overworld-social-toggle.is-active{background:var(--hud-accent-soft, rgba(0, 229, 255, .25));box-shadow:0 0 10px var(--hud-accent-soft, rgba(0, 229, 255, .4))}@media (max-width: 720px){.overworld-social-toggle .hud-label{display:none}.overworld-social-toggle{padding:6px 8px}}.social-panel{position:absolute;top:50px;right:10px;z-index:30;width:280px;max-height:calc(100vh - 70px);overflow-y:auto;background:#000a14eb;border:2px solid var(--cyan);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:10px;transform-origin:top right;transition:opacity var(--transition-base),transform var(--transition-base)}.social-panel--open{opacity:1;transform:translateY(0) scale(1)}.social-panel--closing{opacity:0;transform:translateY(-6px) scale(.97);pointer-events:none}.social-panel-header{display:flex;justify-content:space-between;align-items:center;color:var(--cyan);font-weight:600}.social-panel-header button{background:none;border:none;color:var(--text-main);font-size:18px;cursor:pointer;line-height:1}.social-notification{background:#00e5ff26;border:1px solid var(--cyan);border-radius:6px;padding:6px 8px;font-size:13px}.invite-toast{display:flex;align-items:center;gap:10px;background:var(--panel-bg-soft);border:1px solid var(--panel-border);border-left:3px solid var(--cyan);border-radius:6px;padding:10px 12px;font-size:13px;filter:drop-shadow(0 4px 12px rgba(0,0,0,.45));animation:invite-toast-in .25s cubic-bezier(.2,.8,.3,1.2);pointer-events:auto}.invite-toast--duel{border-left-color:var(--warn)}.invite-toast--group{border-left-color:var(--cyan)}.invite-toast-body{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.invite-toast-eyebrow{font-size:10px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;opacity:.85}.invite-toast--duel .invite-toast-eyebrow{color:var(--warn)}.invite-toast--group .invite-toast-eyebrow{color:var(--cyan)}.invite-toast-text{color:var(--text-main)}.invite-toast-actions{display:flex;gap:6px;flex-shrink:0}.invite-toast-accept,.invite-toast-decline{cursor:pointer;border-radius:4px;font-family:inherit;font-size:12px;font-weight:600;padding:5px 10px}.invite-toast-accept{border:1px solid var(--victory);background:#3ddc842e;color:var(--victory)}.invite-toast-decline{border:1px solid rgba(232,244,255,.25);background:transparent;color:var(--text-main);opacity:.75}.invite-toast-decline:hover{opacity:1}@keyframes invite-toast-in{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.social-list button{cursor:pointer;border-radius:4px;border:1px solid var(--cyan);background:#000a14b3;color:var(--text-main);font-family:inherit;font-size:12px;padding:2px 6px;margin-left:6px}.social-section h3{margin:0 0 6px;font-size:13px;color:var(--cyan);text-transform:uppercase;letter-spacing:.5px}.social-empty{font-size:13px;opacity:.7;margin:0}.social-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.social-list li{display:flex;align-items:center;gap:4px;font-size:13px;animation:social-list-item-in .2s ease}@keyframes social-list-item-in{0%{opacity:0;transform:translate(4px)}to{opacity:1;transform:translate(0)}}.social-avatar{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:22px;height:22px;border-radius:50%;background:#00e5ff26;border:1px solid var(--cyan);color:var(--cyan);font-size:11px;font-weight:700}.social-status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.social-friend-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.social-online{background:#4ade80;box-shadow:0 0 4px #4ade80;animation:social-online-pulse 1.8s ease-in-out infinite}.social-offline{background:#666}@keyframes social-online-pulse{0%,to{box-shadow:0 0 3px #4ade80}50%{box-shadow:0 0 7px #4ade80}}.social-add-form{display:flex;gap:6px}.social-add-form input{flex:1;padding:6px;border-radius:6px;border:1px solid var(--cyan);background:#000a14b3;color:var(--text-main);font-family:inherit}.social-add-form button{cursor:pointer;padding:6px 10px;border-radius:6px;border:1px solid var(--cyan);background:#000a14b3;color:var(--text-main);font-family:inherit}.chat-panel{position:fixed;bottom:56px;left:16px;z-index:25;width:300px;height:340px;background:rgba(0,10,20,var(--chat-bg-opacity, .92));border:2px solid var(--cyan);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:8px}.chat-panel-header{display:flex;justify-content:space-between;align-items:center;gap:8px;color:var(--cyan);font-weight:600}.chat-opacity-slider{width:80px}.chat-online{border-bottom:1px solid rgba(0,229,255,.3);padding-bottom:8px}.chat-online-header{color:var(--cyan);font-weight:600;text-transform:uppercase;font-size:11px;letter-spacing:.5px;margin-bottom:4px}.chat-online-list{max-height:90px;overflow-y:auto}.chat-messages{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.chat-message{display:flex;flex-direction:column;gap:2px;font-size:13px;background:#00e5ff14;border-radius:6px;padding:6px 8px}.chat-message-own{background:#00e5ff2e}.chat-message-meta{display:flex;justify-content:space-between;gap:8px;font-size:11px;opacity:.8}.chat-message-pseudo{color:var(--cyan);font-weight:600}.chat-message-text{word-break:break-word}.chat-input-form{display:flex;gap:6px}.chat-input-form input{flex:1;padding:6px;border-radius:6px;border:1px solid var(--cyan);background:#000a14b3;color:var(--text-main);font-family:inherit}.chat-input-form button{cursor:pointer;padding:6px 10px;border-radius:6px;border:1px solid var(--cyan);background:#000a14b3;color:var(--text-main);font-family:inherit}.stats-panel{position:absolute;top:50px;right:10px;z-index:30;width:380px;max-height:calc(100vh - 70px);overflow-y:auto;background:#000a14eb;border:2px solid var(--cyan);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:10px}.stats-panel-header{display:flex;justify-content:space-between;align-items:center;color:var(--cyan);font-weight:600}.stats-panel-header button{background:none;border:none;color:var(--text-main);font-size:18px;cursor:pointer;line-height:1}.stats-section{display:flex;flex-direction:column;gap:6px;background:#000a14b3;border:1px solid var(--border-cyan, rgba(0, 229, 255, .25));border-radius:8px;padding:10px}.stats-section-title{font-size:12px;font-weight:700;color:var(--cyan);text-transform:uppercase;letter-spacing:.5px}.stats-mode-list{display:flex;flex-direction:column;gap:8px}.stats-mode-row{display:grid;grid-template-columns:90px 1fr;align-items:center;gap:6px;font-size:12px}.stats-mode-label{opacity:.9}.stats-mode-empty{grid-column:2;font-size:11px;color:var(--text-muted, #888)}.stats-mode-bar{grid-column:2;height:8px;border-radius:4px;background:#ff505059;overflow:hidden}.stats-mode-bar-wins{height:100%;background:#3ddc84}.stats-mode-value{grid-column:2;font-size:11px;opacity:.85}.stats-playtime{font-size:18px;font-weight:700;color:var(--cyan)}.stats-top-pokemon{display:flex;flex-direction:column;gap:6px}.stats-top-pokemon-row{display:grid;grid-template-columns:24px 36px 1fr auto;align-items:center;gap:8px;font-size:12px;background:#00e5ff0f;border-radius:6px;padding:4px 6px}.stats-top-pokemon-rank{opacity:.7;font-weight:700}.stats-top-pokemon-sprite{width:32px;height:32px;object-fit:contain;image-rendering:pixelated}.stats-top-pokemon-name{font-weight:600}.stats-top-pokemon-count{opacity:.8;font-size:11px;white-space:nowrap}.achievements-panel{position:absolute;top:50px;right:10px;z-index:30;width:380px;max-height:calc(100vh - 70px);overflow-y:auto;background:#000a14eb;border:2px solid var(--cyan);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:10px}.achievements-panel-header{display:flex;justify-content:space-between;align-items:center;color:var(--cyan);font-weight:600}.achievements-panel-header button{background:none;border:none;color:var(--text-main);font-size:18px;cursor:pointer;line-height:1}.achievements-section-title{font-size:13px;color:var(--cyan);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.achievements-list{display:flex;flex-direction:column;gap:6px;margin-bottom:4px}.achievement-card{display:flex;align-items:flex-start;gap:10px;padding:8px 10px;border-radius:6px;border:1px solid var(--border-cyan, rgba(0, 229, 255, .25));background:#000a14b3}.achievement-card.unlocked{border-color:var(--cyan);background:#00e5ff14}.achievement-card.locked{opacity:.6}.achievement-icon{font-size:18px;flex-shrink:0;line-height:1.2}.achievement-body{min-width:0}.achievement-name{font-size:13px;font-weight:600;color:var(--text-main)}.achievement-card.unlocked .achievement-name{color:var(--cyan)}.achievement-desc{font-size:12px;color:var(--text-main);opacity:.75;margin-top:2px}.achievement-date{font-size:11px;color:var(--cyan);opacity:.8;margin-top:3px}.achievements-empty{font-size:13px;opacity:.7}.box-panel{position:absolute;top:50px;left:10px;z-index:30;width:480px;max-height:calc(100vh - 70px);overflow-y:auto;background:#000a14eb;border:2px solid var(--cyan);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:10px}.box-panel-wide{width:760px;max-width:calc(100vw - 20px)}.box-panel-wide .box-pokedex-grid{max-height:420px}.box-panel-detail{left:790px}.box-detail-window-body{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;overflow-y:auto}.box-detail-stats-row{display:flex;gap:14px;width:100%;align-items:flex-start;margin-top:4px}.box-detail-stats-col{flex:1;min-width:0}.inventory-list{display:flex;flex-direction:column;gap:6px}.inventory-row{display:flex;align-items:center;gap:8px;padding:8px 10px;background:#00e5ff0d;border:1px solid rgba(0,229,255,.2);border-radius:6px}.inventory-item-icon{width:24px;height:24px;object-fit:contain;image-rendering:pixelated;flex-shrink:0}.inventory-item-name{font-weight:500;flex:1}.inventory-item-qty{opacity:.8}.box-panel-header{display:flex;justify-content:space-between;align-items:center;color:var(--cyan);font-weight:600;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.box-panel-header:active{cursor:grabbing}.box-panel-header button{background:none;border:none;color:var(--text-main);font-size:18px;cursor:pointer;line-height:1}.box-mode-select{display:flex;align-items:center;gap:6px;font-size:13px}.box-mode-select select{flex:1;padding:4px;border-radius:6px;border:1px solid var(--cyan);background:#000a14b3;color:var(--text-main);font-family:inherit}.box-new-showdown{display:flex;align-items:center;gap:6px;font-size:13px}.box-new-showdown select{flex:1;min-width:0;padding:4px;border-radius:6px;border:1px solid var(--cyan);background:#000a14b3;color:var(--text-main);font-family:inherit}.box-new-showdown-level{width:52px;padding:4px;border-radius:6px;border:1px solid var(--cyan);background:#000a14b3;color:var(--text-main);font-family:inherit}.box-budget{font-size:13px;background:#00e5ff1a;border:1px solid var(--cyan);border-radius:6px;padding:6px 8px}.box-budget-over{background:#ff3c3c26;border-color:#ff5050;color:#ff9090}.box-error{font-size:12px;color:#ff9090}.box-body{display:flex;gap:10px;min-height:220px}.box-pokedex-grid{flex:1.3;display:grid;grid-template-columns:repeat(auto-fill,minmax(48px,1fr));gap:6px;align-content:start;max-height:320px;overflow-y:auto;padding:2px}.pokedex-panel{position:absolute;top:50px;left:10px;z-index:30;width:820px;max-width:calc(100vw - 20px);max-height:calc(100vh - 70px);overflow-y:auto;background:#000a14eb;border:2px solid var(--cyan);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:10px}.pokedex-panel-header{display:flex;justify-content:space-between;align-items:center;color:var(--cyan);font-weight:600}.pokedex-panel-header button{background:none;border:none;color:var(--text-main);font-size:18px;cursor:pointer;line-height:1}.pokedex-body{display:flex;gap:10px;min-height:320px}.pokedex-grid{flex:1.4;display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:6px;align-content:start;max-height:480px;overflow-y:auto;padding:2px}.pokedex-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:4px 2px;background:#00e5ff0f;border:1px solid var(--border-cyan, rgba(0, 229, 255, .25));border-radius:6px;cursor:pointer;font-family:inherit}.pokedex-tile img{width:32px;height:32px;image-rendering:pixelated}.pokedex-tile-num{font-size:9px;color:var(--text-muted, #888)}.pokedex-tile-locked{cursor:default;background:#000a1480;opacity:.55}.pokedex-tile-unknown{width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;color:var(--text-muted, #888)}.pokedex-tile-selected{border-color:var(--cyan);background:#00e5ff2e}.pokedex-detail{flex:1;min-width:260px;max-height:480px;overflow-y:auto;padding:4px}.pokedex-detail-empty{color:var(--text-muted, #888);font-size:13px}.pokedex-fiche-header{display:flex;gap:12px;align-items:center;margin-bottom:8px}.pokedex-fiche-header img{width:80px;height:80px;object-fit:contain}.pokedex-fiche-name{font-weight:700}.pokedex-fiche-num{color:var(--text-muted, #888);font-size:12px}.pokedex-fiche-types{display:flex;gap:6px;margin-top:4px}.pokedex-type-badge{padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.4)}.pokedex-fiche-cry{height:28px;margin-top:6px}.pokedex-fiche-flavor{font-style:italic;color:var(--text-secondary, #ccc);font-size:13px}.pokedex-fiche-flavor-muted{font-style:normal;color:var(--text-muted, #888)}.pokedex-fiche-stats{display:flex;flex-direction:column;gap:4px;margin:10px 0}.pokedex-stat-row{display:grid;grid-template-columns:60px 1fr 28px;align-items:center;gap:6px;font-size:11px}.pokedex-stat-bar{height:8px;background:#0006;border-radius:4px;overflow:hidden}.pokedex-stat-bar-fill{height:100%;background:var(--cyan);opacity:.75}.pokedex-fiche-abilities{display:flex;gap:6px;flex-wrap:wrap}.pokedex-ability-badge{padding:3px 10px;border-radius:4px;font-size:12px;background:#00e5ff14;border:1px solid var(--border-cyan, rgba(0, 229, 255, .25))}.pokedex-ability-hidden{background:#ffa5001f;border-color:orange}.pokedex-fiche-section-title{margin:16px 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted, #888)}.pokedex-evo-chain{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px}.pokedex-evo-branch{display:flex;align-items:flex-start;gap:8px}.pokedex-evo-step{display:flex;flex-direction:column;align-items:center;width:64px;text-align:center}.pokedex-evo-step img{width:48px;height:48px;object-fit:contain}.pokedex-evo-current img{filter:drop-shadow(0 0 4px var(--cyan))}.pokedex-evo-unknown{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#0006}.pokedex-evo-name{font-size:11px;margin-top:2px}.pokedex-evo-condition{display:block;font-size:10px;color:var(--text-muted, #888);max-width:90px;margin-top:2px}.pokedex-evo-arrow{color:var(--text-muted, #888);align-self:center;margin-top:20px}.pokedex-learnset-table{max-height:220px;overflow-y:auto;border:1px solid var(--border-cyan, rgba(0, 229, 255, .25));border-radius:6px}.pokedex-learnset-table table{width:100%;border-collapse:collapse;font-size:12px}.pokedex-learnset-table th{position:sticky;top:0;text-align:left;padding:4px 8px;background:var(--bg-panel, #111);color:var(--text-muted, #888)}.pokedex-learnset-table td{padding:4px 8px;border-top:1px solid rgba(255,255,255,.06)}.box-pokedex-cell{position:relative;aspect-ratio:1;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:6px;border:1px solid var(--border-cyan, rgba(0, 229, 255, .25));background:#000a14b3;padding:4px}.box-pokedex-cell img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.box-pokedex-cell:hover{border-color:var(--cyan)}.box-pokedex-cell-selected{border-color:var(--success, #00e676);background:#00e6761f}.box-pokedex-cell-active{outline:2px solid var(--cyan);outline-offset:1px}.box-pokedex-cell-badge{position:absolute;top:-4px;right:-4px;width:14px;height:14px;border-radius:50%;background:var(--success, #00e676);color:#0a0a0f;font-size:10px;font-weight:900;display:flex;align-items:center;justify-content:center}.box-pokedex-cell-fainted img{filter:grayscale(1) brightness(.55)}.box-pokedex-cell-fainted-icon{position:absolute;bottom:-4px;right:-4px;width:14px;height:14px;border-radius:50%;background:#ff3d00;color:#fff;font-size:10px;font-weight:900;display:flex;align-items:center;justify-content:center}.box-detail-empty{margin:auto;font-size:12px;color:var(--text-muted, #888)}.box-detail-sprite{width:72px;height:72px;object-fit:contain;image-rendering:pixelated}.box-detail-name{font-weight:700;font-size:.95rem}.box-detail-cost{font-size:11px;opacity:.8;margin-bottom:4px}.box-detail-cost-discount{color:#3ddc84}.box-detail-candy{font-size:11px;opacity:.85;margin-bottom:4px}.box-detail-traits{display:flex;flex-direction:column;gap:2px;font-size:11px;opacity:.9;margin-bottom:6px}.box-detail-xp{display:flex;align-items:center;gap:6px}.box-detail-xp-bar{flex:1;height:6px;border-radius:3px;background:#ffffff26;overflow:hidden}.box-detail-xp-bar-fill{height:100%;background:#3ddc84;transition:width .3s ease}.box-detail-xp-label{font-size:10px;opacity:.8;white-space:nowrap}.box-move-tile{--move-color: #68a090;position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:4px;min-height:60px;padding:6px 8px;border-radius:6px;border:1px solid rgba(255,255,255,.2);background:linear-gradient(rgba(255,255,255,.14),transparent 40%),linear-gradient(160deg,var(--move-color),color-mix(in srgb,var(--move-color) 60%,#000));color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.6)}.box-move-tile-header{display:flex;align-items:baseline;justify-content:space-between;gap:8px;width:100%}.box-move-tile-name{font-size:1rem;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.box-move-tile-power{flex-shrink:0;font-size:1rem;font-weight:800;font-variant-numeric:tabular-nums}.box-move-tile-footer{display:flex;flex-direction:column;gap:2px;width:100%;font-size:.6rem}.box-move-tile-footer-row{display:flex;justify-content:space-between;align-items:center;width:100%}.box-move-tile-type{background:#00000059;border-radius:999px;padding:1px 7px;text-transform:uppercase;letter-spacing:.5px}.box-move-tile-category{opacity:.85;font-weight:700;letter-spacing:.5px;font-size:.8rem}.box-move-tile-accuracy{opacity:.85;font-variant-numeric:tabular-nums;font-size:.8rem}.box-move-tile-pp{opacity:.9;white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.8rem}.box-detail-section-title{font-size:10px;text-transform:uppercase;letter-spacing:.5px;opacity:.6;margin:6px 0 4px}.box-detail-release-section{display:flex;flex-direction:column;gap:4px;margin:4px 0 8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.1)}.box-detail-item-section{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.box-item-banner{display:flex;align-items:center;gap:10px;min-height:44px;padding:6px 12px;border-radius:8px;background:#00e5ff0f;border:1px solid rgba(0,229,255,.2);font-size:13px}.box-item-banner-icon{width:32px;height:32px;object-fit:contain;image-rendering:pixelated;flex-shrink:0}.box-item-banner-name{flex:1;font-weight:600}.box-item-picker{display:flex;align-items:center;gap:8px}.box-item-picker-icon{width:28px;height:28px;object-fit:contain;image-rendering:pixelated;flex-shrink:0}.box-detail-ivs{width:100%;display:flex;flex-direction:column;gap:4px}.box-iv-row{display:grid;grid-template-columns:52px 1fr 24px;align-items:center;gap:6px;font-size:11px}.box-iv-label{text-align:left;opacity:.85}.box-iv-bar{height:6px;border-radius:3px;background:#ffffff1f;overflow:hidden}.box-iv-fill{height:100%}.box-iv-fill-perfect{background:#4dd0ff}.box-iv-fill-high{background:#3ddc84}.box-iv-fill-mid{background:#ffcc4d}.box-iv-fill-low{background:#ff9d4d}.box-iv-fill-poor{background:#ff5050}.box-iv-value{text-align:right}.box-nature-plus{color:#3ddc84;font-weight:700}.box-nature-minus{color:#ff9090;font-weight:700}.box-detail-note{font-size:10px;color:var(--text-muted, #888);margin-top:4px}.box-loadout-select{width:100%;padding:5px 8px;background:var(--bg-input, #08081a);border:1px solid var(--border-cyan, rgba(0, 229, 255, .25));border-radius:4px;color:var(--text-main);font-size:12px;margin-bottom:4px}.box-ev-slider{flex:1;accent-color:var(--cyan, #00e5ff)}.box-gender-toggle{display:flex;gap:6px;margin-bottom:4px}.box-gender-btn{flex:1;cursor:pointer;padding:6px 10px;border-radius:4px;border:1px solid rgba(0,229,255,.3);background:#00e5ff0d;color:var(--text-secondary);font-family:inherit;font-size:12px;font-weight:500}.box-gender-btn.active{background:#00e5ff33;border-color:var(--cyan);color:var(--cyan);font-weight:600}.box-detail-toggle{margin-top:auto;width:100%;cursor:pointer;padding:8px;border-radius:6px;border:1px solid var(--cyan);background:#00e5ff26;color:var(--text-main);font-family:inherit;font-weight:600;font-size:12px}.box-detail-toggle:disabled{opacity:.4;cursor:not-allowed}.box-save-status{opacity:.8;font-size:12px}.team-sortable-container{margin-bottom:16px;padding:12px;border-radius:6px;background:#00e5ff0d;border:1px solid rgba(0,229,255,.2)}.team-sortable-title{margin-bottom:8px;font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.team-member-sortable{display:flex;align-items:center;gap:12px;padding:8px 12px;margin-bottom:6px;border-radius:6px;border:1px solid rgba(0,229,255,.3);background:#000a1499;cursor:grab;transition:all .2s ease}.team-member-sortable:active{cursor:grabbing}.team-member-sortable:hover{background:#00e5ff1a;border-color:var(--cyan)}.team-member-sortable:last-child{margin-bottom:0}.position-badge{display:flex;align-items:center;justify-content:center;min-width:24px;height:24px;border-radius:50%;background:var(--cyan);color:#000;font-size:12px;font-weight:700}.team-member-sprite{width:40px;height:40px;object-fit:contain}.team-member-info{flex:1;display:flex;flex-direction:column;gap:2px}.team-member-name{font-size:13px;font-weight:600;color:var(--text-main)}.team-member-cost{font-size:11px;color:var(--text-muted)}.team-member-remove{cursor:pointer;width:24px;height:24px;border-radius:4px;border:1px solid rgba(255,80,80,.5);background:#ff505026;color:#ff5050;font-size:16px;font-weight:700;line-height:1;transition:all .2s ease}.team-member-remove:hover{background:#ff50504d;border-color:#ff5050}.box-activate-btn{cursor:pointer;padding:8px;border-radius:6px;border:1px solid #3ddc84;background:#3ddc8426;color:#3ddc84;font-family:inherit;font-weight:600;font-size:13px;transition:all .2s ease}.box-activate-btn:hover{background:#3ddc8440}.box-pokedex-cell-shiny{border-color:#ffd54d;box-shadow:0 0 6px #ffd54d99}.box-pokedex-cell-shiny-square{border-color:#ff4dff;box-shadow:0 0 8px #ff4dffb3;background:linear-gradient(135deg,#ff4d4d26,#4dffd526)}.box-pokedex-cell-shiny-icon{position:absolute;top:-4px;left:-4px;font-size:11px;filter:drop-shadow(0 0 2px #000)}.box-vouchers{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px;margin-top:4px}.box-vouchers-label{opacity:.8}.box-voucher-btn{cursor:pointer;padding:4px 8px;border-radius:6px;border:1px solid var(--border-cyan, rgba(0, 229, 255, .25));background:#000a14b3;color:var(--text-main);font-family:inherit;font-size:11px}.box-voucher-btn:disabled{opacity:.4;cursor:not-allowed}.box-eggs{margin-top:6px;display:flex;flex-direction:column;gap:4px}.box-eggs-title{font-size:12px;opacity:.85}.box-egg-row{display:grid;grid-template-columns:18px 1fr 44px;align-items:center;gap:6px;font-size:11px}.box-egg-icon{text-align:center}.box-egg-bar{height:6px;border-radius:3px;background:#ffffff1f;overflow:hidden}.box-egg-fill{height:100%;background:#ffcc4d}.box-egg-value{text-align:right}.box-move-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;width:100%;margin-bottom:8px}.box-move-select{position:relative}.box-move-select-trigger{--move-color: #3a4a5a;width:100%;position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:4px;min-height:60px;padding:6px 8px;border-radius:6px;border:1px solid rgba(255,255,255,.2);background:linear-gradient(rgba(255,255,255,.14),transparent 40%),linear-gradient(160deg,var(--move-color),color-mix(in srgb,var(--move-color) 60%,#000));color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.6);text-align:left;cursor:pointer;transition:transform .1s ease,box-shadow .15s ease}.box-move-select-trigger:hover{transform:translateY(-1px);box-shadow:0 4px 14px #00000073,0 0 0 2px color-mix(in srgb,var(--move-color) 70%,#fff)}.box-move-select-trigger:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.box-move-select-trigger-empty{align-items:center;justify-content:center;text-align:center}.box-move-select-trigger-header{display:flex;align-items:baseline;justify-content:space-between;gap:8px;width:100%}.box-move-select-trigger-label{font-size:1rem;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.box-move-select-trigger-empty .box-move-select-trigger-label{font-size:.8rem;font-weight:500;opacity:.7;white-space:normal}.box-move-select-trigger-power{flex-shrink:0;font-size:1.05rem;font-weight:800;font-variant-numeric:tabular-nums}.box-move-select-trigger-footer{display:flex;flex-direction:column;gap:2px;width:100%;font-size:.6rem}.box-move-select-trigger-footer-row{display:flex;justify-content:space-between;align-items:center;width:100%}.box-move-select-trigger-type{background:#00000059;border-radius:999px;padding:1px 7px;text-transform:uppercase;letter-spacing:.5px}.box-move-select-trigger-category{opacity:.85;font-weight:700;letter-spacing:.5px;font-size:.8rem}.box-move-select-trigger-accuracy{opacity:.85;font-variant-numeric:tabular-nums;font-size:.8rem}.box-move-select-trigger-pp{opacity:.9;white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.8rem}.box-move-select-trigger-arrow{position:absolute;top:6px;right:8px;font-size:10px;opacity:.75}.box-move-select-menu{position:fixed;z-index:200;overflow-y:auto;background:#08081a;border:1px solid var(--border-cyan, rgba(0, 229, 255, .35));border-radius:4px;box-shadow:0 6px 20px #00000080;padding:4px;display:flex;flex-direction:column;gap:2px}.box-move-select-option{--move-color: #68a090;display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:4px;border-left:3px solid var(--move-color);background:color-mix(in srgb,var(--move-color) 16%,transparent);color:var(--text-main, #e8f4ff);font-size:11px;cursor:pointer}.box-move-select-option:hover,.box-move-select-option[aria-selected=true]{background:color-mix(in srgb,var(--move-color) 32%,transparent)}.box-move-select-option-empty{--move-color: #3a4a5a;opacity:.8}.box-move-select-option-name{flex:1;min-width:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.box-move-select-option-power{min-width:18px;text-align:right;font-weight:700;font-variant-numeric:tabular-nums;opacity:.9}.box-move-select-option-category{min-width:26px;text-align:right;font-weight:700;letter-spacing:.5px;opacity:.75}.box-move-select-option-accuracy{min-width:32px;text-align:right;font-variant-numeric:tabular-nums;opacity:.7}.box-move-select-option-pp{min-width:36px;text-align:right;font-variant-numeric:tabular-nums;opacity:.7}.move-tooltip-bubble{position:fixed;z-index:300;max-width:280px;transform:translate(-50%);padding:12px 16px 14px;border-radius:12px;background:linear-gradient(180deg,#171a29,#0a0b14);border:1px solid rgba(255,255,255,.14);box-shadow:0 16px 36px #0000008c,0 0 0 1px color-mix(in srgb,var(--move-color, #4dd0ff) 45%,transparent),0 0 24px -8px color-mix(in srgb,var(--move-color, #4dd0ff) 70%,transparent);color:#f2f7ff;font-size:13.5px;line-height:1.55;letter-spacing:.1px;pointer-events:none;animation:move-tooltip-in .14s ease-out}.move-tooltip-bubble[data-placement=top]{transform:translate(-50%,-100%)}.move-tooltip-bubble-accent{height:3px;margin:-3px -2px 10px;border-radius:999px;background:var(--move-color, #4dd0ff);box-shadow:0 0 10px var(--move-color, #4dd0ff)}.move-tooltip-bubble:after{content:"";position:absolute;left:50%;margin-left:-7px;border:7px solid transparent}.move-tooltip-bubble[data-placement=bottom]:after{bottom:100%;border-bottom-color:#171a29}.move-tooltip-bubble[data-placement=top]:after{top:100%;border-top-color:#0a0b14}@keyframes move-tooltip-in{0%{opacity:0}to{opacity:1}}.profil-panel{position:absolute;top:50px;right:10px;z-index:30;width:480px;max-height:calc(100vh - 70px);overflow-y:auto;background:#000a14eb;border:2px solid var(--cyan);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:10px}.profil-panel-header{display:flex;justify-content:space-between;align-items:center;color:var(--cyan);font-weight:600}.profil-panel-header button{background:none;border:none;color:var(--text-main);font-size:18px;cursor:pointer;line-height:1}.profil-hint{font-size:13px;color:var(--text-main)}.profil-status{font-size:12px;color:var(--text-muted, #999)}.profil-status-ok{color:var(--success, #00e676)}.profil-sprite-filters{display:flex;flex-wrap:wrap;gap:6px}.profil-filter-btn{font-family:inherit;font-size:.75rem;padding:4px 10px;border-radius:5px;border:1px solid var(--border-cyan, rgba(0, 229, 255, .25));background:#000a14b3;color:var(--text-main);cursor:pointer}.profil-filter-btn:hover{border-color:var(--cyan)}.profil-filter-btn-active{border-color:var(--cyan);background:#00e5ff2e;color:var(--cyan)}.profil-sprite-search{width:100%;box-sizing:border-box;font-family:inherit;font-size:.8rem;padding:6px 8px;border-radius:5px;border:1px solid var(--border-cyan, rgba(0, 229, 255, .25));background:#000a14b3;color:var(--text-main)}.profil-sprite-search:focus{outline:none;border-color:var(--cyan)}.profil-sprite-grid{display:flex;flex-wrap:wrap;gap:10px;max-height:400px;overflow-y:auto;padding:2px}.profil-sprite-cell{display:flex;flex-direction:column;align-items:center;gap:4px;width:90px;padding:8px;cursor:pointer;border-radius:6px;border:1px solid var(--border-cyan, rgba(0, 229, 255, .25));background:#000a14b3;color:inherit;font-family:inherit}.profil-sprite-cell:hover{border-color:var(--cyan)}.profil-sprite-cell-selected{border-color:var(--success, #00e676);background:#00e6761f}.profil-sprite-thumb{position:relative;overflow:hidden;background-color:#1a1a2e}.profil-sprite-thumb-content{position:absolute;left:0;bottom:0;image-rendering:pixelated}.profil-sprite-name{font-size:.7rem;text-align:center;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profil-section-title{margin:4px 0 0;font-size:13px;color:var(--cyan);text-transform:uppercase;letter-spacing:.5px}.profil-accessibility{display:flex;flex-direction:column;gap:10px}.profil-a11y-row{display:flex;flex-direction:column;gap:6px;font-size:13px}.profil-a11y-checkbox{display:flex;align-items:center;gap:8px;cursor:pointer}.profil-a11y-font-steps{display:flex;gap:6px}.profil-a11y-font-btn{cursor:pointer;flex:1;padding:6px 8px;border-radius:6px;border:1px solid var(--cyan);background:#000a14b3;color:var(--text-main);font-family:inherit;font-size:12px}.profil-a11y-font-btn-active{background:#00e5ff40;font-weight:600}.profil-logout-btn{cursor:pointer;margin-top:4px;padding:8px 12px;border-radius:6px;border:1px solid var(--defeat);background:#ff4d5e1f;color:var(--defeat);font-family:inherit;font-size:13px;font-weight:600}.profil-logout-btn:hover{background:#ff4d5e40}.progression-panel{position:absolute;top:50px;right:10px;z-index:30;width:340px;max-height:calc(100vh - 70px);overflow-y:auto;background:#000a14eb;border:2px solid var(--cyan);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:10px}.progression-panel-header{display:flex;justify-content:space-between;align-items:center;color:var(--cyan);font-weight:600}.progression-panel-header button{background:none;border:none;color:var(--text-main);font-size:18px;cursor:pointer;line-height:1}.progression-level-list{display:flex;flex-direction:column;gap:6px}.progression-level{display:flex;flex-direction:column;align-items:flex-start;width:100%;cursor:pointer;border-radius:6px;border:1px solid var(--cyan);background:#000a14b3;color:var(--text-main);font-family:inherit;font-size:13px;padding:6px 8px}.progression-level-locked{opacity:.4;cursor:not-allowed}.progression-level-meta{font-size:11px;opacity:.8}.battle-message-box,.battle-action-panel,.dungeon-panel,.dungeon-shop-overlay .dungeon-shop,.dungeon-node-card,.dungeon-instance-status,.dungeon-capture-card,.dungeon-shop-item,.dungeon-reward-card,.dungeon-next-node{--notch: 12px;position:relative;clip-path:polygon(var(--notch) 0,100% 0,100% calc(100% - var(--notch)),calc(100% - var(--notch)) 100%,0 100%,0 var(--notch));filter:drop-shadow(0 6px 18px rgba(0,0,0,.5))}.battle-nameplate,.sp-plate,.dungeon-instance-toast{--notch: 8px;position:relative;clip-path:polygon(var(--notch) 0,100% 0,100% calc(100% - var(--notch)),calc(100% - var(--notch)) 100%,0 100%,0 var(--notch))}.battle-message-box:before,.battle-action-panel:before,.dungeon-panel:before,.dungeon-shop-overlay .dungeon-shop:before,.dungeon-node-card:before,.dungeon-instance-status:before{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border:1px solid rgba(0,229,255,.14);clip-path:polygon(9px 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%,0 9px);pointer-events:none}.battle-screen-header,.dungeon-panel-header,.spectate-split-header,.dungeon-shop-header,.dungeon-reward-header,.group-widget-header{text-transform:uppercase;letter-spacing:1.5px;font-weight:700}.battle-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;flex-direction:column;align-items:center;gap:10px;background:radial-gradient(ellipse at 50% 0%,#0d1f2f,#00050af7 70%);color:var(--text-main);padding:16px;overflow-y:auto}.battle-screen>*{width:100%;max-width:1040px;flex-shrink:0}.battle-screen-body{display:flex;gap:10px}.battle-screen-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px}@media (max-width: 860px){.battle-screen-body{flex-direction:column}}.battle-screen-header{display:flex;justify-content:space-between;align-items:center;color:var(--cyan);font-weight:600}.battle-screen-header button{background:none;border:none;color:var(--text-main);font-size:18px;cursor:pointer;line-height:1}.battle-screen-log{max-height:160px;overflow-y:auto;background:#000a14b3;border:1px solid var(--cyan);border-radius:6px;padding:10px;font-size:12px;white-space:pre-wrap}.battle-recap-panel{background:var(--panel-bg);border:2px solid var(--panel-border);display:flex;flex-direction:column;width:300px;flex-shrink:0}@media (max-width: 860px){.battle-recap-panel{width:100%}.battle-recap-scroll{max-height:220px}}.battle-recap-header{padding:10px 14px;border-bottom:1px solid rgba(0,229,255,.25);color:var(--cyan);font-weight:600;font-size:.85rem}.battle-recap-scroll{flex:1;min-height:0;overflow-y:auto;padding:10px 14px;display:flex;flex-direction:column;gap:4px}.battle-recap-empty{margin:0;color:var(--text-muted, #888);font-size:.85rem}.battle-recap-line{margin:0;font-size:.82rem;line-height:1.4;color:var(--text-main)}.battle-recap-line-chat{font-weight:700;color:var(--cyan)}.battle-recap-form{display:flex;gap:8px;padding:10px 14px;border-top:1px solid rgba(0,229,255,.25)}.battle-recap-form input{flex:1;padding:8px 10px;border-radius:4px;border:1px solid rgba(0,229,255,.35);background:#00e5ff0f;color:var(--text-main);font-family:inherit;font-size:.85rem}.battle-recap-form input:focus{outline:none;border-color:var(--cyan)}.battle-recap-form button{cursor:pointer;padding:6px 10px;border-radius:4px;border:1px solid var(--cyan);background:#00e5ff26;color:var(--text-main);font-family:inherit;font-weight:700;font-size:.7rem;text-transform:uppercase;letter-spacing:.5px}.battle-recap-form button:disabled{opacity:.4;cursor:not-allowed}.battle-stats-tooltip{position:absolute;top:50%;transform:translateY(-50%);z-index:5;background:#000a14f2;border:1px solid var(--cyan);border-radius:6px;padding:8px 12px;min-width:150px;box-shadow:0 4px 14px #00000080;pointer-events:none}.battle-stats-tooltip-opponent{right:calc(100% + 10px)}.battle-stats-tooltip-player{left:calc(100% + 10px)}.battle-stats-tooltip-row{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px;padding:2px 0}.battle-stats-tooltip-label{color:var(--text-muted, #9fb4c0)}.battle-stats-tooltip-value{color:var(--text-main);font-weight:700}.battle-stats-tooltip-ability{margin-bottom:4px;padding-bottom:4px;border-bottom:1px solid rgba(255,255,255,.15)}.battle-stats-tooltip-value-group{display:flex;align-items:center;gap:5px}.battle-stats-tooltip-stage{font-size:9px;font-weight:700;line-height:1;padding:2px 4px;border-radius:3px;color:#04120a}.battle-stats-tooltip-stage-up{background:var(--victory)}.battle-stats-tooltip-stage-down{background:var(--defeat)}.battle-boost-badges{display:flex;flex-wrap:wrap;gap:3px;margin-top:2px}.battle-boost-badge{font-size:9px;font-weight:700;line-height:1;padding:2px 4px;border-radius:3px;color:#04120a}.battle-boost-badge-up{background:var(--victory)}.battle-boost-badge-down{background:var(--defeat)}.battle-stats-tooltip-moves-header{margin-top:4px;padding-top:4px;border-top:1px solid rgba(255,255,255,.15);color:var(--text-muted, #9fb4c0);font-size:10px;text-transform:uppercase;letter-spacing:.03em}.battle-stats-tooltip-move-row{font-size:11px;color:var(--text-main);padding:1px 0}.battle-stats-tooltip-move-unknown{color:var(--text-muted, #9fb4c0);font-style:italic}.battle-screen-log-details{color:var(--text-main);font-size:12px}.battle-screen-log-details summary{cursor:pointer;color:var(--cyan);margin-bottom:6px}.battle-fast-toggle.active{color:var(--cyan);text-shadow:0 0 8px rgba(0,229,255,.6)}.battle-debug-inspector{background:#000a14b3;border:1px solid var(--cyan);border-radius:6px;padding:8px 10px;font-size:11px;color:var(--text-main);line-height:1.5}.battle-hud{display:flex;gap:10px;min-height:120px}.battle-message-box{flex:1.4;background:var(--panel-bg);border:2px solid var(--panel-border);padding:14px 18px;display:flex;align-items:center;box-shadow:inset 0 0 20px #00e5ff14;transition:border-color .3s ease,box-shadow .3s ease}.battle-message-box p{margin:0;font-size:.95rem;line-height:1.4}.battle-message-box.battle-result-victory{border-color:var(--victory);box-shadow:inset 0 0 24px #3ddc8429}.battle-message-box.battle-result-defeat{border-color:var(--defeat);box-shadow:inset 0 0 24px #ff4d5e29}.battle-message-box.battle-result-tie{border-color:var(--warn);box-shadow:inset 0 0 24px #ffcc4d29}.battle-message-box.battle-result-flee{border-color:var(--cyan);box-shadow:inset 0 0 24px #00e5ff29}.battle-message-box.battle-message-crit{border-color:var(--warn);box-shadow:inset 0 0 24px #ffcc4d4d;animation:battle-crit-pulse .35s ease}.battle-message-box.battle-message-crit p{color:var(--warn);font-weight:700}@keyframes battle-crit-pulse{0%{transform:scale(1)}30%{transform:scale(1.03)}to{transform:scale(1)}}.battle-result-victory p{color:var(--victory);font-weight:700}.battle-result-defeat p{color:var(--defeat);font-weight:700}.battle-result-tie p{color:var(--warn);font-weight:700}.battle-result-flee p{color:var(--cyan);font-weight:700}.battle-message-box-result{flex-direction:column;align-items:flex-start;justify-content:center;gap:6px;overflow-y:auto}.battle-result-recap{display:flex;flex-direction:column;gap:6px;width:100%}.battle-result-recap p{margin:0}.battle-action-panel{flex:1;background:var(--panel-bg);border:2px solid var(--panel-border);padding:10px;display:flex;flex-direction:column;gap:6px}.battle-main-menu{justify-content:center}.battle-menu-btn{cursor:pointer;padding:10px 14px;border-radius:4px;border:1px solid rgba(0,229,255,.35);border-left:3px solid var(--cyan);background:#00e5ff14;color:var(--text-main);font-family:inherit;font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:1px;text-align:left;transition:background .15s ease,transform .1s ease,border-left-width .15s ease}.battle-menu-btn:hover:not(:disabled){background:#00e5ff33;transform:translate(2px);border-left-width:6px}.battle-menu-btn:disabled{opacity:.35;cursor:not-allowed}.battle-menu-btn-attack:before{content:"⚔ "}.battle-menu-btn-team:before{content:"● "}.battle-menu-btn-ball:before{content:"⚾ "}.battle-menu-btn-tera{border-left-color:#ff6ad5}.battle-menu-btn-tera:before{content:"◆ "}.battle-menu-btn-flee{border-left-color:var(--defeat)}.battle-menu-btn-flee:before{content:"↩ "}.battle-moves-panel,.battle-switch-panel{justify-content:space-between}.battle-back-btn{align-self:flex-start;cursor:pointer;background:none;border:none;color:var(--cyan);font-family:inherit;font-size:.8rem;padding:4px 2px}.switch-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;overflow-y:auto}.switch-entry{width:100%;cursor:pointer;padding:6px 10px;border-radius:4px;border:1px solid rgba(0,229,255,.35);border-left:3px solid var(--cyan);background:#00e5ff14;color:var(--text-main);font-family:inherit;font-size:.8rem;text-align:left;transition:background .15s ease,border-left-width .15s ease}.switch-entry:hover:not(:disabled){background:#00e5ff33;border-left-width:6px}.switch-entry:disabled{opacity:.35;cursor:not-allowed}.switch-entry-count{color:var(--text-muted, #888);font-size:.75rem;margin-left:4px}.battle-message-hint{margin:0 0 4px;font-size:.8rem;color:var(--text-muted, #888)}.battle-menu-btn-focused,.switch-entry-focused,.battle-back-btn-focused{background:#00e5ff47;border-left-width:6px;box-shadow:0 0 0 2px var(--cyan)}.battle-back-btn-focused{outline:2px solid var(--cyan);outline-offset:2px;border-radius:3px}.move-tile-focused{box-shadow:0 4px 14px #00000080,0 0 0 3px #fff;transform:translateY(-2px)}.switch-empty{color:var(--text-muted, #888);font-size:.8rem}.battle-waiting{align-items:center;justify-content:center;flex-direction:row;gap:8px;color:var(--text-muted, #888);font-size:.85rem}.battle-spinner{width:14px;height:14px;border-radius:50%;border:2px solid rgba(0,229,255,.25);border-top-color:var(--cyan);animation:battle-spin .8s linear infinite}@keyframes battle-spin{to{transform:rotate(360deg)}}.battle-result-panel{align-items:center;justify-content:center}.battle-result-panel button{cursor:pointer;padding:10px 16px;border-radius:4px;border:1px solid rgba(0,229,255,.4);border-left:3px solid var(--cyan);background:#00e5ff26;color:var(--text-main);font-family:inherit;font-weight:700;text-transform:uppercase;letter-spacing:1px;transition:background .15s ease,border-left-width .15s ease}.battle-result-return-btn{padding:18px 24px;font-size:1.05rem;width:100%}.battle-result-panel button:hover{background:#00e5ff40;border-left-width:6px}.battle-exp-recap{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px;font-size:12px;text-align:left}.battle-exp-gain{color:#3ddc84}.battle-exp-levelup{color:#ffd166;font-weight:600}.battle-scene{position:relative;width:100%;height:460px;border-radius:10px;overflow:hidden;border:2px solid var(--cyan);flex-shrink:0}.battle-scene-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 90% 70% at 50% 8%,rgba(60,150,200,.16) 0%,transparent 70%),linear-gradient(to bottom,#0a1826,#0a1826 54%,#163a34 56%,#0d2924)}.battle-scene-bg:after{content:"";position:absolute;left:0;right:0;top:55%;height:2px;background:linear-gradient(90deg,transparent,rgba(140,220,200,.35),transparent)}.battle-platform{position:absolute;bottom:-8%;left:50%;transform:translate(-50%);width:118%;height:32%;border-radius:50%;pointer-events:none}.battle-platform-opponent{background:radial-gradient(ellipse at center,rgba(120,170,220,.42) 0%,rgba(60,100,150,.26) 50%,transparent 85%);box-shadow:inset 0 0 0 1.5px #a0d2ff59,0 4px 10px #00000059}.battle-platform-player{background:radial-gradient(ellipse at center,rgba(120,220,170,.4) 0%,rgba(70,150,110,.24) 50%,transparent 85%);box-shadow:inset 0 0 0 1.5px #a0ffc852,0 4px 10px #00000059}.battle-combatant{position:absolute;display:flex;flex-direction:column;align-items:center;gap:4px}.battle-combatant-opponent{top:14px;right:20px;align-items:flex-end}.battle-combatant-player{bottom:8px;left:20px;align-items:flex-start}.battle-combatant-opponent-1{right:160px;top:30px}.battle-combatant-player-1{left:160px;bottom:4px}.battle-sprite-wrap-small.battle-sprite-wrap-opponent{width:90px;height:90px}.battle-sprite-wrap-small.battle-sprite-wrap-player{width:145px;height:145px}.battle-nameplate{background:#000a14d9;border:1px solid var(--cyan);border-radius:6px;padding:4px 8px;font-size:11px;color:var(--text-main);min-width:120px}.battle-nameplate-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:3px}.battle-nameplate-name{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.battle-nameplate-level{font-size:10px;opacity:.75;white-space:nowrap}.battle-hp-bar{width:100%;height:7px;border-radius:2px;background:#ffffff1f;overflow:hidden;position:relative}.battle-hp-bar:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:repeating-linear-gradient(90deg,rgba(0,0,0,.35) 0,rgba(0,0,0,.35) 1px,transparent 1px,transparent 8.33%);pointer-events:none}.battle-hp-fill{height:100%;transition:width .4s ease,background-color .4s ease}.battle-hp-fill-high{background:var(--victory);box-shadow:0 0 6px #3ddc8499}.battle-hp-fill-mid{background:var(--warn);box-shadow:0 0 6px #ffcc4d99}.battle-hp-fill-low{background:var(--defeat);box-shadow:0 0 6px #ff4d5eb3}.battle-hp-text{display:block;margin-top:2px;font-size:10px;opacity:.8}.status-badge{display:inline-block;margin-left:6px;padding:1px 5px;border-radius:4px;font-size:9px;font-weight:700;letter-spacing:.03em;vertical-align:middle;color:#0a0a0a}.status-badge-brn{background:#ff8c42}.status-badge-psn{background:#b565d8}.status-badge-tox{background:#8a2ba6;color:#fff}.status-badge-par{background:#ffd23f}.status-badge-slp{background:#9aa5b1}.status-badge-frz{background:#7ed6ff}.battle-tera-badge{display:inline-block;margin-left:6px;color:var(--tera-color, #ff6ad5);font-size:12px;vertical-align:middle;text-shadow:0 0 3px rgba(0,0,0,.6)}.dmb-nameplate-owner{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10px;color:var(--cyan);opacity:.9}.dmb-nameplate-items{display:flex;gap:3px;margin-top:3px;justify-content:flex-end}.dmb-nameplate-item{font-size:11px;line-height:1}.dmb-error{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:40;background:var(--panel-bg);border:2px solid var(--defeat);border-radius:8px;padding:16px 20px;text-align:center;color:#ffb3ba}.dmb-error button{margin-top:10px;cursor:pointer;padding:8px 14px;border-radius:4px;border:1px solid var(--defeat);background:#ff4d5e24;color:var(--text-main);font-family:inherit;font-weight:700;text-transform:uppercase;letter-spacing:1px;font-size:.8rem}.battle-sprite-wrap{position:relative;display:flex;align-items:flex-end;justify-content:center;transform-origin:center bottom}.battle-sprite-wrap-opponent{width:130px;height:130px}.battle-sprite-wrap-player{width:210px;height:210px}.battle-sprite{width:100%;height:100%;object-fit:contain;image-rendering:pixelated;filter:url(#battle-sprite-opaque)}.battle-boss-aura{filter:drop-shadow(0 0 10px var(--boss-color)) drop-shadow(0 0 22px var(--boss-color));animation:battle-boss-aura-pulse 1.8s ease-in-out infinite}@keyframes battle-boss-aura-pulse{0%,to{filter:drop-shadow(0 0 8px var(--boss-color)) drop-shadow(0 0 16px var(--boss-color))}50%{filter:drop-shadow(0 0 14px var(--boss-color)) drop-shadow(0 0 30px var(--boss-color))}}.battle-nameplate-name-boss{color:var(--boss-color);text-shadow:0 0 6px var(--boss-color)}.battle-move-banner{position:absolute;top:8px;left:50%;transform:translate(-50%);background:#000a14e6;border:1px solid var(--cyan);border-radius:6px;padding:4px 10px;font-size:12px;color:var(--text-main);z-index:2;animation:battle-banner-fade 1.4s ease forwards}.battle-anim-hit{animation:battle-shake .4s ease}.battle-anim-faint{animation:battle-faint .6s ease forwards}.battle-anim-switch{animation:battle-flash .4s ease}.battle-anim-crit{animation:battle-crit-shake .45s ease}@keyframes battle-crit-shake{0%{filter:brightness(1);transform:translate(0)}15%{filter:brightness(2.2) drop-shadow(0 0 10px #ffcc4d);transform:translate(-8px)}35%{filter:brightness(1.6) drop-shadow(0 0 6px #ffcc4d);transform:translate(8px)}55%{filter:brightness(1.3);transform:translate(-5px)}75%{filter:brightness(1.1);transform:translate(3px)}to{filter:brightness(1);transform:translate(0)}}.battle-anim-move{animation:battle-lunge .4s ease;transform-origin:center bottom}@keyframes battle-lunge{0%,to{transform:scale(1) rotate(0)}35%{transform:scale(1.12) rotate(-2deg)}65%{transform:scale(.97) rotate(1deg)}}@keyframes battle-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes battle-flash{0%,to{filter:brightness(1);opacity:1}50%{filter:brightness(2);opacity:.7}}@keyframes battle-faint{0%{transform:translateY(0);opacity:1}to{transform:translateY(30px);opacity:0}}@keyframes battle-banner-fade{0%{opacity:0}15%,80%{opacity:1}to{opacity:0}}.box-entry-sprite{width:28px;height:28px;object-fit:contain;image-rendering:pixelated}.battle-screen-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.move-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;width:100%}.move-tile{--move-color: #68A090;position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:8px;min-height:88px;padding:8px 12px;border-radius:6px;border:2px solid rgba(255,255,255,.25);background:linear-gradient(rgba(255,255,255,.16),transparent 40%),linear-gradient(160deg,var(--move-color),color-mix(in srgb,var(--move-color) 60%,#000));color:#fff;font-family:inherit;text-align:left;cursor:pointer;text-shadow:0 1px 2px rgba(0,0,0,.6);transition:transform .1s ease,box-shadow .15s ease}.move-tile:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 14px #00000080,0 0 0 2px color-mix(in srgb,var(--move-color) 70%,#fff)}.move-tile:disabled{filter:grayscale(.6);opacity:.55;cursor:not-allowed}.move-tile-header{display:flex;align-items:baseline;justify-content:space-between;gap:8px;width:100%}.move-tile-name{font-size:1.05rem;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.move-tile-power{flex-shrink:0;font-size:1.05rem;font-weight:800;font-variant-numeric:tabular-nums}.move-tile-footer{display:flex;flex-direction:column;gap:2px;width:100%;font-size:.62rem}.move-tile-footer-row{display:flex;justify-content:space-between;align-items:center;width:100%}.move-tile-pp{opacity:.9;white-space:nowrap}.move-tile-category{opacity:.85;font-weight:700;letter-spacing:.5px}.move-tile-accuracy{opacity:.85;font-variant-numeric:tabular-nums}.move-tile-type{background:#00000059;border-radius:999px;padding:1px 7px;text-transform:uppercase;letter-spacing:.5px}.battle-screen-actions h4{width:100%;margin:4px 0 0;font-size:12px;color:var(--cyan)}.battle-screen-actions button{cursor:pointer;padding:8px 10px;border-radius:6px;border:1px solid var(--cyan);background:#00e5ff26;color:var(--text-main);font-family:inherit}.battle-screen-actions button:disabled{opacity:.4;cursor:not-allowed}.battle-screen-result,.battle-screen-error{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.battle-screen-result button,.battle-screen-error button{cursor:pointer;padding:8px;border-radius:6px;border:1px solid var(--cyan);background:#00e5ff26;color:var(--text-main);font-family:inherit;font-weight:600}.player-menu{position:fixed;z-index:40;display:flex;flex-direction:column;gap:8px;background:#000a14f2;border:2px solid var(--cyan);border-radius:8px;padding:14px;min-width:200px}.player-menu-title{color:var(--cyan);font-weight:600;text-align:center;margin-bottom:4px}.player-menu button{cursor:pointer;padding:8px;border-radius:6px;border:1px solid var(--cyan);background:#000a14b3;color:var(--text-main);font-family:inherit}.player-menu button:disabled{cursor:not-allowed;opacity:.4;border-color:#555}.capture-ball{position:relative;width:clamp(20px,4vw,30px);height:clamp(20px,4vw,30px);border-radius:50%;background:linear-gradient(#e63946 0,#e63946 48%,#1a1a1a 48%,#1a1a1a 52%,#f5f5f5 52%,#f5f5f5);border:2px solid #1a1a1a;box-shadow:0 2px 6px #00000073;flex-shrink:0}.capture-ball-button{position:absolute;left:50%;top:50%;width:32%;height:32%;transform:translate(-50%,-50%);background:#f5f5f5;border:2px solid #1a1a1a;border-radius:50%}@keyframes capture-ball-drop-in{0%{transform:scale(.4) translateY(-14px);opacity:0}60%{transform:scale(1.08) translateY(2px);opacity:1}to{transform:scale(1) translateY(0);opacity:1}}.capture-ball-throw{animation:capture-ball-drop-in .35s ease-out both}.battle-panel-scene .capture-ball,.battle-panel-scene .capture-ball-throw,.battle-panel-scene .capture-ball-idle-static,.battle-panel-scene .capture-ball-drop,.battle-panel-scene .capture-ball-shake,.battle-panel-scene .capture-ball-success,.battle-panel-scene .capture-ball-fail{position:absolute;z-index:20}@keyframes capture-ball-fly{0%{left:20%;top:82%;transform:translate(-50%,-50%) rotate(0) scale(.85)}55%{left:50%;top:26%;transform:translate(-50%,-50%) rotate(300deg) scale(1.08)}to{left:76%;top:22%;transform:translate(-50%,-50%) rotate(540deg) scale(1)}}.battle-panel-scene .capture-ball-throw{animation:capture-ball-fly .5s cubic-bezier(.32,.6,.4,1) both}.battle-panel-scene .capture-ball-idle-static,.battle-panel-scene .capture-ball-drop,.battle-panel-scene .capture-ball-shake,.battle-panel-scene .capture-ball-success,.battle-panel-scene .capture-ball-fail{left:76%;top:22%}@keyframes capture-swallow-kf{0%{transform:scale(1) translateY(0);opacity:1;filter:brightness(1)}40%{transform:scale(.7) translateY(6px);opacity:1;filter:brightness(2.2)}to{transform:scale(.15) translateY(22px);opacity:0;filter:brightness(2.6)}}.capture-swallow-anim{animation:capture-swallow-kf .45s ease-in both}@keyframes capture-popback-kf{0%{transform:scale(.15);opacity:0;filter:brightness(2.6)}60%{transform:scale(1.12);opacity:1;filter:brightness(1.4)}to{transform:scale(1);opacity:1;filter:brightness(1)}}.capture-popback-anim{animation:capture-popback-kf .35s ease-out both}@keyframes capture-ball-drop-kf{0%{transform:translate(-50%,-50%) translateY(-26px)}30%{transform:translate(-50%,-50%) translateY(0)}45%{transform:translate(-50%,-50%) translateY(-10px)}60%{transform:translate(-50%,-50%) translateY(0)}72%{transform:translate(-50%,-50%) translateY(-4px)}84%{transform:translate(-50%,-50%) translateY(0)}to{transform:translate(-50%,-50%) translateY(0)}}.capture-ball-drop{animation:capture-ball-drop-kf .35s cubic-bezier(.5,0,.8,.4) both}.capture-ball-idle-static{transform:translate(-50%,-50%)}@keyframes capture-ball-shake-kf{0%{transform:translate(-50%,-50%) rotate(0)}10%{transform:translate(-50%,-50%) rotate(-27deg)}22%{transform:translate(-50%,-50%) rotate(20deg)}32%{transform:translate(-50%,-50%) rotate(-12deg)}38%,to{transform:translate(-50%,-50%) rotate(0)}}.capture-ball-shake{animation:capture-ball-shake-kf .65s ease-out var(--shake-count, 1)}@keyframes capture-ball-success-kf{0%{transform:translate(-50%,-50%) scale(1);filter:brightness(1) drop-shadow(0 0 0 rgba(255,213,77,0));opacity:1}25%{transform:translate(-50%,-50%) scale(1.22);filter:brightness(2.4) drop-shadow(0 0 10px rgba(255,213,77,.9));opacity:1}45%{transform:translate(-50%,-50%) scale(1.05);filter:brightness(1.3) drop-shadow(0 0 4px rgba(255,213,77,.5));opacity:1}65%{transform:translate(-50%,-50%) scale(1.22);filter:brightness(2.2) drop-shadow(0 0 10px rgba(255,213,77,.9));opacity:1}to{transform:translate(-50%,-50%) scale(1);filter:brightness(1.1) drop-shadow(0 0 6px rgba(255,213,77,.6));opacity:1}}.capture-ball-success{animation:capture-ball-success-kf .7s ease-out forwards}.capture-ball-success:after{content:"✨";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:1.8em;animation:capture-ball-sparkle-kf .7s ease-out both;pointer-events:none}@keyframes capture-ball-sparkle-kf{0%{opacity:0;transform:translate(-50%,-50%) scale(.4)}40%{opacity:1;transform:translate(-50%,-50%) scale(1.3)}to{opacity:0;transform:translate(-50%,-50%) scale(2.1)}}@keyframes capture-ball-fail-kf{0%{transform:translate(-50%,-50%) rotate(0) scale(1);filter:brightness(1);opacity:1}20%{transform:translate(-50%,-50%) rotate(-18deg) scale(1.2);filter:brightness(1.8);opacity:1}45%{transform:translate(-50%,-50%) rotate(14deg) scale(.92);filter:brightness(1.2);opacity:1}to{transform:translate(-50%,-50%) rotate(0) scale(.75);filter:brightness(1);opacity:0}}.capture-ball-fail{animation:capture-ball-fail-kf .5s ease-in forwards}@keyframes capture-ball-drop-kf-inline{0%{transform:translateY(-26px)}30%{transform:translateY(0)}45%{transform:translateY(-10px)}60%{transform:translateY(0)}72%{transform:translateY(-4px)}84%{transform:translateY(0)}to{transform:translateY(0)}}.dungeon-capture-ball-anim .capture-ball-drop{animation:capture-ball-drop-kf-inline .35s cubic-bezier(.5,0,.8,.4) both}@keyframes capture-ball-shake-kf-inline{0%{transform:rotate(0)}10%{transform:rotate(-27deg)}22%{transform:rotate(20deg)}32%{transform:rotate(-12deg)}38%,to{transform:rotate(0)}}.dungeon-capture-ball-anim .capture-ball-shake{animation:capture-ball-shake-kf-inline .65s ease-out var(--shake-count, 1)}@keyframes capture-ball-success-kf-inline{0%{transform:scale(1);filter:brightness(1);opacity:1}25%{transform:scale(1.22);filter:brightness(2.4);opacity:1}45%{transform:scale(1.05);filter:brightness(1.3);opacity:1}65%{transform:scale(1.22);filter:brightness(2.2);opacity:1}to{transform:scale(1);filter:brightness(1.1);opacity:1}}.dungeon-capture-ball-anim .capture-ball-success{animation:capture-ball-success-kf-inline .7s ease-out forwards}@keyframes capture-ball-fail-kf-inline{0%{transform:rotate(0) scale(1);filter:brightness(1);opacity:1}20%{transform:rotate(-18deg) scale(1.2);filter:brightness(1.8);opacity:1}45%{transform:rotate(14deg) scale(.92);filter:brightness(1.2);opacity:1}to{transform:rotate(0) scale(.75);filter:brightness(1);opacity:0}}.dungeon-capture-ball-anim .capture-ball-fail{animation:capture-ball-fail-kf-inline .5s ease-in forwards}.dungeon-capture-ball-anim{display:flex;align-items:center;justify-content:center;padding:10px 0}.battle-scene .capture-ball-shake{animation:capture-ball-shake-kf-inline .65s ease-out var(--shake-count, 1)}.battle-scene .capture-ball-success{animation:capture-ball-success-kf-inline .7s ease-out forwards}.battle-scene .capture-ball-fail{animation:capture-ball-fail-kf-inline .5s ease-in forwards}.heal-anim{display:flex;justify-content:center;padding:12px 0}.heal-anim-balls{display:flex;gap:10px}@keyframes heal-anim-ball-drop{0%{transform:scale(.4) translateY(-18px);opacity:0}60%{transform:scale(1.1) translateY(3px);opacity:1}to{transform:scale(1) translateY(0);opacity:1}}.heal-anim-ball{animation:heal-anim-ball-drop .35s ease-out both;filter:drop-shadow(0 2px 3px rgba(0,0,0,.5))}.evolution-anim{display:flex;flex-direction:column;align-items:center;gap:10px;padding:10px 0}.evolution-anim-sprites{position:relative;width:clamp(80px,20vw,120px);height:clamp(80px,20vw,120px)}.evolution-anim-sprite{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.evolution-anim-sprite-before{z-index:1}.evolution-anim-sprite-after{z-index:2;opacity:0}@keyframes evo-flash-kf{0%,to{filter:brightness(1)}20%,60%{filter:brightness(3) saturate(0)}40%,80%{filter:brightness(1)}}.evolution-anim-flash .evolution-anim-sprite-before{animation:evo-flash-kf .65s ease-in-out both}@keyframes evo-morph-out-kf{0%{opacity:1;filter:brightness(0) saturate(0);transform:scale(1)}to{opacity:0;filter:brightness(0) saturate(0);transform:scale(.85)}}@keyframes evo-morph-in-kf{0%{opacity:0;filter:brightness(0) saturate(0);transform:scale(.85)}60%{opacity:1;filter:brightness(0) saturate(0);transform:scale(1.05)}to{opacity:1;filter:brightness(0) saturate(0);transform:scale(1)}}.evolution-anim-morph .evolution-anim-sprite-before{animation:evo-morph-out-kf .75s ease-in both}.evolution-anim-morph .evolution-anim-sprite-after{animation:evo-morph-in-kf .75s ease-out both}@keyframes evo-reveal-kf{0%{opacity:1;filter:brightness(0) saturate(0)}to{opacity:1;filter:brightness(1) saturate(1)}}.evolution-anim-reveal .evolution-anim-sprite-after,.evolution-anim-done .evolution-anim-sprite-after{animation:evo-reveal-kf .75s ease-out both}.evolution-anim-reveal .evolution-anim-sprites:after{content:"✨";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:2em;animation:evo-sparkle-kf .75s ease-out both;pointer-events:none}@keyframes evo-sparkle-kf{0%{opacity:0;transform:translate(-50%,-50%) scale(.4)}40%{opacity:1;transform:translate(-50%,-50%) scale(1.4)}to{opacity:0;transform:translate(-50%,-50%) scale(2.2)}}.evolution-anim-panel{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}.evolution-anim-actions{display:flex;gap:10px}.evolution-anim-error{color:#ff9090}.move-learn-prompt{display:flex;flex-direction:column;align-items:center;gap:10px;padding:10px 0}.move-learn-prompt-sprite{width:clamp(64px,16vw,96px);height:clamp(64px,16vw,96px);object-fit:contain;image-rendering:pixelated}.move-learn-options{display:flex;flex-direction:column;gap:6px;width:100%;max-width:260px}.move-learn-option{padding:6px 10px;border-radius:6px;border:1px solid var(--cyan);background:#00e5ff26;color:var(--text-main);cursor:pointer}.move-learn-option:hover{background:#00e5ff4d}.invite-toast-stack{position:fixed;top:64px;left:50%;transform:translate(-50%);z-index:45;width:min(320px,calc(100vw - 32px));display:flex;flex-direction:column;align-items:stretch;gap:8px;pointer-events:none}.invite-toast-stack>*{pointer-events:auto}.invite-toast-stack--secondary{top:148px}.duel-notification{align-self:center;background:#00e5ff26;border:1px solid var(--cyan);border-radius:6px;padding:6px 12px;font-size:13px;color:var(--text-main);animation:invite-toast-in .2s ease}.group-widget{position:fixed;bottom:70px;right:16px;z-index:25;width:240px;display:flex;flex-direction:column;gap:8px;background:#000a14eb;border:2px solid var(--cyan);border-radius:8px;padding:12px}.group-widget-header{color:var(--cyan);font-weight:600;text-transform:uppercase;font-size:13px;letter-spacing:.5px}.group-widget>button{cursor:pointer;padding:6px;border-radius:6px;border:1px solid var(--cyan);background:#000a14b3;color:var(--text-main);font-family:inherit}.admin-gear{position:absolute;bottom:16px;right:16px;z-index:10;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--cyan);background:#000a14b3;font-size:18px;text-decoration:none;transition:background .2s,transform .15s}.admin-gear:hover{background:#00e5ff26;transform:rotate(30deg)}.dungeon-instance-toast{position:absolute;top:60px;left:50%;transform:translate(-50%);z-index:40;background:var(--panel-bg-soft);border:1px solid var(--panel-border);border-left:3px solid var(--cyan);padding:8px 16px;font-size:13px;color:var(--text-main);filter:drop-shadow(0 4px 12px rgba(0,0,0,.45));animation:toast-drop .2s ease}.dungeon-instance-hud{position:absolute;top:16px;left:16px;z-index:35;display:flex;flex-direction:column;gap:14px;background:var(--panel-bg-soft);border:1px solid var(--panel-border);border-left:4px solid var(--cyan);padding:16px 24px;font-size:21px;color:var(--text-main);filter:drop-shadow(0 4px 12px rgba(0,0,0,.45));max-width:min(620px,calc(100vw - 32px))}.dungeon-instance-hud-row{display:flex;align-items:center;gap:18px;font-weight:600}.dungeon-instance-hud-row .dungeon-currency{font-size:20px}.dungeon-instance-ball-count{font-size:18px}.dungeon-instance-bag-btn{margin-left:auto;background:#00e5ff1a;border:1px solid rgba(0,229,255,.3);border-radius:6px;color:var(--text-main);font-size:16px;padding:6px 14px;cursor:pointer}.dungeon-instance-bag-btn:hover{background:#00e5ff33}.dungeon-instance-leave-btn{background:#ff3d001a;border:1px solid rgba(255,61,0,.3);border-radius:6px;color:var(--text-main);font-size:14px;padding:6px 12px;cursor:pointer}.dungeon-instance-leave-btn:hover{background:#ff3d0033}.dungeon-instance-roster{display:flex;gap:28px;padding-top:12px;border-top:1px solid rgba(0,229,255,.18)}.dungeon-instance-roster-col{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}.dungeon-instance-roster-label{font-size:16px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--cyan);opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dungeon-instance-roster-mons{display:flex;flex-wrap:wrap;gap:10px}.dungeon-instance-roster-mon{position:relative;width:68px;height:68px;border-radius:8px;background:#00e5ff14;border:1px solid rgba(0,229,255,.25)}.dungeon-instance-roster-mon img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.dungeon-instance-roster-lvl{position:absolute;right:-4px;bottom:-8px;font-size:14px;font-weight:700;line-height:1;padding:3px 5px;border-radius:4px;background:var(--panel-bg);border:1px solid var(--panel-border);color:var(--cyan)}.dungeon-instance-roster-hp{position:absolute;left:2px;right:2px;bottom:2px;height:4px;border-radius:2px;background:#00000080;overflow:hidden}.dungeon-instance-roster-hp-fill{height:100%;background:var(--success, #3ddc84);transition:width .2s ease}.dungeon-instance-roster-hp-fainted{background:#555}.dungeon-instance-roster-items{position:absolute;left:-6px;top:-6px;display:flex;gap:2px;max-width:90px;flex-wrap:wrap}.dungeon-instance-roster-item{width:20px;height:20px;padding:0;border-radius:50%;background:var(--panel-bg);border:1px solid var(--panel-border);font-size:11px;line-height:1;cursor:pointer}.dungeon-inventory-held-section{padding:10px 16px 0}.dungeon-inventory-held-label{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--cyan);opacity:.85;margin-bottom:8px}.dungeon-inventory-held-row{display:flex;flex-wrap:wrap;gap:10px}.dungeon-inventory-held-mon{display:flex;flex-direction:column;align-items:center;gap:2px;width:88px;background:#00e5ff0f;border:1px solid rgba(0,229,255,.2);border-radius:8px;padding:8px 6px;text-align:center}.dungeon-inventory-held-mon img{width:44px;height:44px;object-fit:contain;image-rendering:pixelated}.dungeon-inventory-held-name{font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.dungeon-inventory-held-item-row{display:flex;align-items:center;gap:4px;flex-wrap:wrap;justify-content:center}.dungeon-inventory-held-item{font-size:11px;color:var(--text-dim, #9fb4c4)}.dungeon-inventory-held-remove{margin-top:4px;font-size:11px;padding:2px 8px;border-radius:4px;border:1px solid rgba(255,100,100,.4);background:#ff64641a;color:var(--text-main);cursor:pointer}.dungeon-shop-item-ball{border-color:#ffd25080}.dungeon-inventory-equip-picker{margin-top:6px;padding-top:6px;border-top:1px dashed rgba(255,255,255,.15)}.dungeon-inventory-equip-picker-label{font-size:12px;opacity:.85;margin-bottom:6px}.dungeon-inventory-equip-picker-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.dungeon-inventory-equip-pick-btn{width:36px;height:36px;padding:2px;border-radius:6px;background:#00e5ff14;border:1px solid rgba(0,229,255,.25);cursor:pointer}.dungeon-inventory-equip-pick-btn img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.dungeon-instance-toast-error{border-color:#ff4d5e80;border-left-color:var(--defeat);color:#ffb3ba;cursor:pointer}@keyframes toast-drop{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}.npc-interaction-panel{position:absolute;bottom:0;left:0;right:0;z-index:20}.npc-interaction-box{background:#000a14f2;border-top:2px solid var(--cyan);padding:16px 24px;display:flex;flex-direction:column;gap:10px}.npc-interaction-name{color:var(--cyan)}.npc-interaction-text{margin:0}.npc-interaction-error{margin:0;color:#ff5050}.npc-interaction-options{display:flex;flex-wrap:wrap;gap:8px}.npc-interaction-option,.npc-interaction-close{cursor:pointer;padding:8px 16px;border-radius:6px;border:1px solid var(--cyan);background:#000a14b3;color:var(--text-main);font-family:inherit;align-self:flex-start}.npc-interaction-option:hover,.npc-interaction-close:hover{background:#00e5ff26}.npc-interaction-focused{background:#00e5ff47;box-shadow:0 0 0 2px var(--cyan)}.npc-shop{display:flex;flex-direction:column;gap:10px}.npc-shop-col{display:flex;flex-direction:column;gap:4px}.npc-shop-col h4{margin:0;color:var(--cyan);font-size:.85rem;text-transform:uppercase;letter-spacing:.5px}.npc-shop-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:4px 0;border-bottom:1px solid rgba(0,229,255,.15)}.spectate-split{position:fixed;top:0;right:0;bottom:0;z-index:37;width:clamp(300px,38vw,520px);display:flex;flex-direction:column;background:linear-gradient(200deg,#071b2c,#04121f 55%,#020a12);border-left:2px solid var(--cyan);box-shadow:-8px 0 28px #000000a6;color:var(--text-main)}.spectate-split-header{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;color:var(--cyan);font-weight:700;font-size:14px;border-bottom:1px solid rgba(0,229,255,.25);background:#000a1480}.spectate-split-header button{background:none;border:none;color:var(--text-main);font-size:18px;cursor:pointer;line-height:1;padding:0 2px}.spectate-split-scene{position:relative;flex:1;display:flex;flex-direction:column;justify-content:space-between;padding:22px 16px 14px;overflow:hidden}.sp-slot{display:flex;align-items:center;gap:10px}.sp-slot-opponent{justify-content:space-between}.sp-slot-fighter{justify-content:space-between;flex-direction:row}.sp-plate{width:min(190px,55%);background:linear-gradient(180deg,#061a2af2,#020c16f2);border:1px solid var(--cyan);border-radius:8px;padding:5px 9px 6px;font-size:13px;box-shadow:0 3px 10px #0009,inset 0 1px #8cdcff26}.sp-plate-row{display:flex;align-items:baseline;justify-content:space-between;gap:6px}.sp-plate-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:700}.sp-plate-level{flex-shrink:0;font-weight:600;font-size:10px;color:var(--cyan)}.sp-plate-hp-row{display:flex;align-items:center;gap:4px;margin-top:3px}.sp-plate-hp-label{font-size:8px;font-weight:700;color:var(--cyan);letter-spacing:.5px}.sp-plate-hp-text{display:block;font-size:10px;opacity:.85;margin-top:2px;text-align:right}.sp-sprite-wrap{position:relative;display:flex;align-items:flex-end;justify-content:center;flex-shrink:0}.sp-sprite-opponent{width:108px;height:108px}.sp-sprite-fighter{width:132px;height:132px}.sp-platform{position:absolute;bottom:-2%;left:50%;transform:translate(-50%);width:100%;height:26%;border-radius:50%;pointer-events:none}.sp-sprite-opponent .sp-platform{background:radial-gradient(ellipse at center,rgba(120,170,220,.42) 0%,rgba(60,100,150,.26) 50%,transparent 85%);box-shadow:inset 0 0 0 1.5px #a0d2ff59,0 4px 10px #00000059}.sp-sprite-fighter .sp-platform{background:radial-gradient(ellipse at center,rgba(120,220,170,.4) 0%,rgba(70,150,110,.24) 50%,transparent 85%);box-shadow:inset 0 0 0 1.5px #a0ffc852,0 4px 10px #00000059}.sp-sprite{position:relative;width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.spectate-split-result{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:26px;font-weight:800;letter-spacing:1px;text-shadow:0 2px 12px rgba(0,0,0,.9)}.sp-result-win{color:#3ddc84}.sp-result-loss{color:#ff5050}.spectate-split-message{margin:0 12px 12px;padding:9px 12px;min-height:38px;background:#000a14d9;border:1px solid rgba(0,229,255,.4);border-radius:8px;font-size:13px}.dungeon-shop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:center;justify-content:center;background:#00000080}.dungeon-shop-overlay .dungeon-shop{width:480px;max-width:calc(100vw - 40px);max-height:calc(100vh - 80px);overflow-y:auto;background:var(--panel-bg);border:2px solid var(--panel-border);padding:16px}.dungeon-panel{position:absolute;top:50px;left:10px;z-index:30;width:420px;max-height:calc(100vh - 70px);overflow-y:auto;background:var(--panel-bg);border:2px solid var(--panel-border);padding:12px;display:flex;flex-direction:column;gap:10px}.dungeon-panel--in-instance{top:216px;max-height:calc(100vh - 236px)}.dungeon-panel-header{display:flex;justify-content:space-between;align-items:center;color:var(--cyan);font-size:13px;padding-bottom:8px;border-bottom:1px solid rgba(0,229,255,.25)}.dungeon-panel-header button{background:none;border:none;color:var(--text-main);font-size:18px;cursor:pointer;line-height:1}.dungeon-start{display:flex;flex-direction:column;gap:8px;font-size:13px}.dungeon-error{color:var(--defeat);font-size:12px}.dungeon-start-btn,.dungeon-node-action,.dungeon-shop-continue{cursor:pointer;padding:10px;border-radius:4px;border:1px solid rgba(0,229,255,.4);border-left:3px solid var(--cyan);background:#00e5ff1f;color:var(--text-main);font-family:inherit;font-weight:700;text-transform:uppercase;letter-spacing:1px;font-size:.82rem;transition:background .15s ease,border-left-width .15s ease}.dungeon-start-btn:hover:not(:disabled),.dungeon-node-action:hover,.dungeon-shop-continue:hover{background:#00e5ff38;border-left-width:6px}.dungeon-start-btn:disabled{opacity:.5;cursor:not-allowed}.dungeon-run{display:flex;flex-direction:column;gap:10px}.dungeon-status{display:flex;align-items:center;gap:10px;font-size:13px;background:#00e5ff14;border:1px solid var(--panel-border);border-radius:4px;padding:6px 10px}.dungeon-abandon-btn{margin-left:auto;cursor:pointer;background:none;border:1px solid rgba(255,77,94,.45);color:var(--defeat);border-radius:4px;padding:4px 8px;font-size:11px;font-family:inherit;text-transform:uppercase;letter-spacing:.5px;transition:background .15s ease}.dungeon-abandon-btn:hover{background:#ff4d5e24}.dungeon-instance-status{display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px;border:1px solid var(--panel-border);background:var(--panel-bg-soft);text-align:center}.dungeon-node-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px;border:1px solid var(--panel-border);background:var(--panel-bg-soft)}.dungeon-node-icon{font-size:28px}.dungeon-node-label{font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:1px}.dungeon-node-action{width:100%}.dungeon-capture-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px;border:1px solid var(--gold);background:#ffd54d14;font-size:13px;filter:drop-shadow(0 0 8px rgba(255,213,77,.25))}.dungeon-capture-ball-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.dungeon-capture-no-ball{font-size:12px;opacity:.75;text-align:center}.dungeon-capture-result{text-align:center;font-size:13px;padding:6px;opacity:.9}.dungeon-next-choices{display:flex;flex-direction:column;gap:8px}.dungeon-next-label{font-size:12px;color:var(--text-muted, #888)}.dungeon-next-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:8px}.dungeon-next-node{display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;padding:12px 8px;border:1px solid var(--panel-border);background:var(--panel-bg-soft);color:var(--text-main);font-family:inherit;font-size:12px;text-transform:uppercase;letter-spacing:.5px;transition:background .15s ease,transform .1s ease}.dungeon-next-node:hover{background:#00e5ff33;transform:translateY(-2px)}.dungeon-shop{display:flex;flex-direction:column;gap:10px}.dungeon-shop-header{display:flex;justify-content:space-between;align-items:center;font-size:13px;padding-bottom:8px;border-bottom:1px solid rgba(0,229,255,.25)}.dungeon-currency{color:var(--gold);font-weight:700;letter-spacing:normal;text-transform:none}.dungeon-shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}.dungeon-shop-item{--rarity-color: #cfd8dc;display:flex;flex-direction:column;gap:4px;padding:8px;border:2px solid var(--rarity-color);background:var(--panel-bg-soft);font-size:11px;filter:drop-shadow(0 0 6px color-mix(in srgb,var(--rarity-color) 35%,transparent))}.dungeon-shop-item-icon{width:32px;height:24px;object-fit:contain;align-self:center;image-rendering:pixelated}.dungeon-shop-item-rarity{color:var(--rarity-color);font-weight:700;text-transform:uppercase;font-size:10px}.dungeon-shop-item-name{font-weight:600;font-size:12px}.dungeon-shop-item-desc{opacity:.8;flex:1}.dungeon-shop-item button{cursor:pointer;padding:6px;border-radius:4px;border:1px solid var(--rarity-color);background:color-mix(in srgb,var(--rarity-color) 16%,transparent);color:var(--text-main);font-family:inherit;font-size:11px;font-weight:600;transition:background .15s ease}.dungeon-shop-item button:hover:not(:disabled){background:color-mix(in srgb,var(--rarity-color) 30%,transparent)}.dungeon-shop-item button:disabled{opacity:.4;cursor:not-allowed}.dungeon-shop-actions{display:flex;gap:8px}.dungeon-shop-reroll{flex:1;cursor:pointer;padding:8px;border-radius:4px;border:1px solid var(--panel-border);background:var(--panel-bg-soft);color:var(--text-main);font-family:inherit;font-size:12px;text-transform:uppercase;letter-spacing:.5px;transition:background .15s ease}.dungeon-shop-reroll:hover:not(:disabled){background:#00e5ff1f}.dungeon-shop-reroll:disabled{opacity:.4;cursor:not-allowed}.dungeon-shop-continue{flex:1}.dungeon-reward{display:flex;flex-direction:column;gap:10px}.dungeon-reward-header{font-size:13px;font-weight:600;color:var(--cyan)}.dungeon-reward-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.dungeon-reward-card{--rarity-color: #ffd54f;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;padding:12px 8px;border:2px solid var(--rarity-color);background:var(--panel-bg-soft);color:var(--text-main);font-family:inherit;text-align:center;filter:drop-shadow(0 0 6px color-mix(in srgb,var(--rarity-color) 35%,transparent));transition:background .15s ease,transform .1s ease}.dungeon-reward-card:hover{background:color-mix(in srgb,var(--rarity-color) 18%,transparent);transform:translateY(-2px)}.dungeon-reward-icon{font-size:22px}.dungeon-reward-rarity{color:var(--rarity-color);font-weight:700;text-transform:uppercase;font-size:9px}.dungeon-reward-name{font-size:11px;font-weight:600}.dungeon-reward-desc{font-size:10px;opacity:.8}@media (max-width: 640px){.login-screen form{width:min(260px,calc(100vw - 32px))}.overworld-hud{top:6px;right:6px;gap:6px;font-size:13px;flex-wrap:wrap;max-width:calc(100vw - 12px);justify-content:flex-end}.overworld-social-toggle{padding:4px 8px;font-size:12px}#overworld-dialogue{padding:12px 16px}.social-panel,.box-panel,.progression-panel,.dungeon-panel,.profil-panel,.stats-panel,.pokedex-panel{top:6px;right:6px;left:6px;width:auto;max-height:calc(100vh - 60px)}.pokedex-body{flex-direction:column}.group-widget{right:6px;left:6px;bottom:60px;width:auto}.chat-panel{left:6px;right:6px;width:auto;height:220px;bottom:60px}.player-menu{min-width:min(200px,calc(100vw - 24px));max-width:calc(100vw - 24px)}.admin-gear{bottom:6px;right:6px;width:34px;height:34px;font-size:15px}}.coop-split-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex}.coop-split-divider{width:2px;flex-shrink:0;background:#000}.coop-log-drawer{position:absolute;left:8px;right:8px;bottom:8px;z-index:61}.battle-panel{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;position:relative;overflow:hidden;background:radial-gradient(ellipse 90px 34px at 12% 16%,#ffffffd9,#fff0 72%),radial-gradient(ellipse 60px 24px at 20% 12%,#ffffffbf,#fff0 72%),radial-gradient(ellipse 70px 26px at 78% 9%,#fffc,#fff0 72%),radial-gradient(ellipse 46px 18px at 85% 14%,#ffffffa6,#fff0 72%),radial-gradient(ellipse 55px 20px at 45% 6%,#ffffff8c,#fff0 72%),radial-gradient(ellipse 120px 30px at 20% 68%,rgba(255,255,255,.1) 0%,transparent 70%),radial-gradient(ellipse 140px 34px at 75% 80%,rgba(0,0,0,.12) 0%,transparent 70%),radial-gradient(ellipse 100px 26px at 55% 62%,rgba(255,255,255,.08) 0%,transparent 70%),radial-gradient(ellipse 130px 32px at 10% 90%,rgba(0,0,0,.14) 0%,transparent 70%),radial-gradient(ellipse 70% 50% at 15% 8%,rgba(255,250,210,.5) 0%,transparent 60%),linear-gradient(to bottom,#8fc9f0,#bfe4f7 38%,#eaf7fb 55%,#7fbf6e 57%,#5a9c52 78%,#3f7a3f)}.battle-panel:before{content:"";position:absolute;left:0;right:0;top:55%;height:3px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent);box-shadow:0 0 8px #fff6;z-index:1;pointer-events:none}.battle-panel-readonly{filter:brightness(.82) saturate(.85)}.battle-panel-badge{flex-shrink:0;align-self:flex-start;margin:8px 0 0 12px;background:#0000008c;color:#fff;padding:3px 9px;border-radius:4px;font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase}.battle-panel-scene{position:relative;flex:1;min-height:0;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;padding:clamp(6px,1.5vh,16px) clamp(14px,3vw,32px)}.battle-panel-move-banner{position:absolute;top:4px;left:50%;transform:translate(-50%);z-index:3;background:#141414e0;color:#fff;border:2px solid #303030;border-radius:6px;padding:4px 12px;font-size:12px;font-weight:700;white-space:nowrap;animation:battle-banner-fade 1.4s ease forwards}.battle-panel-corner{display:flex;min-width:0;min-height:0}.battle-panel-corner-enemy-card{grid-column:1;grid-row:1;align-items:flex-start;justify-content:flex-start}.battle-panel-corner-enemy-sprite{grid-column:2;grid-row:1;align-items:flex-start;justify-content:flex-end}.battle-panel-corner-ally-sprite{grid-column:1;grid-row:2;align-items:flex-end;justify-content:flex-start}.battle-panel-corner-ally-card{grid-column:2;grid-row:2;align-items:flex-end;justify-content:flex-end}.battle-panel-sprite{height:auto;max-height:100%;image-rendering:pixelated;filter:drop-shadow(0 8px 6px rgba(0,0,0,.3))}.battle-panel-sprite-enemy{width:clamp(70px,min(13vw,16vh),140px)}.battle-panel-sprite-ally{width:clamp(90px,min(17vw,20vh),180px)}.battle-panel-card{background:#f4f4e8;border:4px solid #303030;border-radius:12px;padding:clamp(6px,1.4vh,10px) clamp(10px,2vw,14px);color:#202020}.battle-panel-info-card{min-width:clamp(140px,26vw,200px);max-width:min(320px,60vw)}.battle-panel-align-right{text-align:right}.battle-panel-align-left{text-align:left}.battle-panel-card-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.battle-panel-card-name{font-weight:800;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.battle-panel-card-level{font-weight:700;font-size:12px;opacity:.75;white-space:nowrap}.battle-panel-hp-row{margin-top:6px;display:flex;align-items:center;gap:6px}.battle-panel-hp-label{flex-shrink:0;font-size:9px;font-weight:800;letter-spacing:.5px;color:#303030}.battle-panel-hp-bar{flex:1;height:9px;border-radius:4px;background:#303030;overflow:hidden}.battle-panel-hp-fill{height:100%;transition:width .3s ease,background-color .3s ease}.battle-panel-hp-fill-high{background:#3ddc84}.battle-panel-hp-fill-mid{background:#ffcc4d}.battle-panel-hp-fill-low{background:#ff4d4d}.battle-panel-exp-bar{margin-top:5px;height:4px;border-radius:2px;background:#303030;overflow:hidden}.battle-panel-exp-fill{height:100%;background:#4fc3f7;transition:width .3s ease}.battle-panel-hp-text{margin-top:4px;font-size:11px;font-weight:700;color:#303030}.battle-panel-message-card{flex-shrink:0;display:flex;flex-direction:column;gap:10px;min-height:clamp(70px,14vh,100px);padding:clamp(10px,2vh,16px) clamp(16px,3vw,28px);background:#1c2029;border-top:3px solid #000;color:#f4f4e8}.battle-panel-message-text{margin:0;font-size:14px;line-height:1.4;font-weight:600;color:#f4f4e8}.battle-panel-menu-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.battle-panel-btn{cursor:pointer;padding:10px 12px;border-radius:8px;border:3px solid #303030;background:#fff;color:#202020;font-family:inherit;font-weight:800;font-size:12px;letter-spacing:.5px;text-align:center;transition:background .12s ease,transform .08s ease}.battle-panel-btn:hover:not(:disabled){background:#e8e8da;transform:translateY(-1px)}.battle-panel-btn:disabled{opacity:.4;cursor:not-allowed}.battle-panel-btn-flee{border-color:#b23a3a;color:#b23a3a}.battle-panel-btn-wide,.battle-panel-btn-back{grid-column:1 / -1}.battle-panel-btn-back{background:transparent;border-color:#f4f4e8;border-style:dashed;color:#f4f4e8}.battle-panel-btn-back:hover:not(:disabled){background:#f4f4e81f}.battle-panel-empty{grid-column:1 / -1;font-size:12px;opacity:.7;text-align:center}.battle-panel-sprite.battle-anim-hit{animation:battle-panel-hit .4s ease}@keyframes battle-panel-hit{0%,to{transform:translate(0);filter:brightness(1) saturate(1)}20%{transform:translate(-8px);filter:brightness(1.6) saturate(2.2) drop-shadow(0 0 10px rgba(255,60,60,.7))}40%{transform:translate(8px);filter:brightness(1.3) saturate(1.6)}60%{transform:translate(-5px);filter:brightness(1)}80%{transform:translate(5px)}}.battle-panel-sprite.battle-anim-faint{animation:battle-panel-faint .7s ease forwards}@keyframes battle-panel-faint{0%{transform:translateY(0) scale(1);opacity:1;filter:brightness(1)}60%{transform:translateY(18px) scale(.9);opacity:.5;filter:brightness(.6) grayscale(.6)}to{transform:translateY(46px) scale(.75);opacity:0;filter:brightness(.4) grayscale(1)}}.battle-panel-entering-enemy{animation:battle-panel-enter-right .6s cubic-bezier(.2,.8,.3,1)}.battle-panel-entering-ally{animation:battle-panel-enter-left .6s cubic-bezier(.2,.8,.3,1)}@keyframes battle-panel-enter-right{0%{transform:translate(60px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes battle-panel-enter-left{0%{transform:translate(-60px);opacity:0}to{transform:translate(0);opacity:1}}.battle-panel-result-banner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(.6);z-index:4;font-size:clamp(22px,5vw,36px);font-weight:800;letter-spacing:1px;text-shadow:0 3px 0 #000,0 3px 14px rgba(0,0,0,.6);color:#f4f4e8;animation:battle-panel-result-pop .5s cubic-bezier(.34,1.56,.64,1) forwards;pointer-events:none}@keyframes battle-panel-result-pop{0%{transform:translate(-50%,-50%) scale(.4);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}.battle-panel-result-victory .battle-panel-result-banner{color:#3ddc84}.battle-panel-result-defeat .battle-panel-result-banner{color:#ff4d5e}.battle-panel-result-tie .battle-panel-result-banner{color:#ffcc4d}.battle-panel-result-flee .battle-panel-result-banner{color:#00e5ff}.battle-panel-result-victory{background:linear-gradient(to bottom,#bfe4f7,#dff3fb 55%,#8fd6a8 55%,#4f9e6a)}.battle-panel-result-defeat{background:linear-gradient(to bottom,#d9b8bf,#e9d3d6 55%,#b98a8a 55%,#7a4a4a)}.battle-panel-moves-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.battle-panel-moves-back{grid-column:1 / -1}.battle-panel-move-tile{--move-color: #68A090;position:relative;display:flex;flex-direction:column;gap:3px;padding:6px 10px;border-radius:6px;border:2px solid rgba(255,255,255,.3);background:linear-gradient(rgba(255,255,255,.18),transparent 45%),linear-gradient(160deg,var(--move-color),color-mix(in srgb,var(--move-color) 55%,#000));color:#fff;font-family:inherit;text-align:left;cursor:pointer;text-shadow:0 1px 2px rgba(0,0,0,.6);transition:transform .1s ease,box-shadow .15s ease}.battle-panel-move-tile:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 10px #00000073,0 0 0 2px color-mix(in srgb,var(--move-color) 70%,#fff)}.battle-panel-move-tile:disabled{filter:grayscale(.6);opacity:.55;cursor:not-allowed}.battle-panel-move-name{font-size:12px;font-weight:800}.battle-panel-move-footer{display:flex;justify-content:space-between;align-items:center;font-size:9px;opacity:.95}.battle-panel-move-type{background:#00000052;border-radius:999px;padding:1px 7px;text-transform:uppercase;letter-spacing:.4px}.battle-panel-move-power{font-weight:700}.battle-panel-move-pp{opacity:.85}.battle-panel-move-eff{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.3px}.move-eff-super .battle-panel-move-eff{color:#baffc9}.move-eff-weak .battle-panel-move-eff{color:#ffe0a3}.move-eff-none .battle-panel-move-eff{color:#ffb3b3}.move-eff-super{box-shadow:0 0 0 2px #3ddc84 inset}.move-eff-none{filter:grayscale(.4) brightness(.85)}@media (max-width: 720px){.coop-split-screen{flex-direction:column}.coop-split-divider{width:100%;height:2px}.battle-panel-info-card{min-width:0;max-width:70vw}}
