.gx-ui .gx-btn{min-height:38px;padding:0 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:var(--gx-radius);font-family:inherit;font-size:14px;font-weight:600;line-height:1.2;text-decoration:none;cursor:pointer;box-sizing:border-box;transition:background-color .15s,border-color .15s,box-shadow .15s,transform .08s}
.gx-ui .gx-btn-primary{color:#fff;background:var(--gx-blue);border-color:var(--gx-blue)}.gx-ui .gx-btn-primary:hover{color:#fff;background:var(--gx-blue-hover);border-color:var(--gx-blue-hover);box-shadow:0 4px 10px #0878f938}.gx-ui .gx-btn-primary:active{background:var(--gx-blue-active)}
.gx-ui .gx-btn-secondary{color:var(--gx-blue);background:transparent;border-color:var(--gx-blue)}.gx-ui .gx-btn-secondary:hover{color:#fff;background:var(--gx-blue);border-color:var(--gx-blue)}.gx-ui .gx-btn-secondary:active{color:#fff;background:var(--gx-blue-active);border-color:var(--gx-blue-active)}
.gx-ui .gx-btn-success{background:var(--gx-green);color:#fff;border-color:var(--gx-green)}.gx-ui .gx-btn-success:hover{background:var(--gx-green-hover);border-color:var(--gx-green-hover)}.gx-ui .gx-btn-success:active{background:#07864e}
.gx-ui .gx-btn-danger{background:var(--gx-red);border-color:var(--gx-red);color:#fff}.gx-ui .gx-btn-danger:hover{background:#e8273c}.gx-ui .gx-btn-danger:active{background:#c91a2e}
.gx-ui .gx-btn-warning{background:var(--gx-orange);border-color:var(--gx-orange);color:#fff}.gx-ui .gx-btn-warning:hover{background:#e96007}.gx-ui .gx-btn-warning:active{background:#c95100}
.gx-ui .gx-btn-purple{background:var(--gx-purple);border-color:var(--gx-purple);color:#fff}.gx-ui .gx-btn-purple:hover{background:#6037d6}.gx-ui .gx-btn-purple:active{background:#5126c2}
.gx-ui .gx-btn-ghost,.gx-ui .gx-btn.gx-btn-icon{color:#123b6d;background:transparent;border-color:transparent}.gx-ui .gx-btn-ghost:hover,.gx-ui .gx-btn.gx-btn-icon:hover{background:#edf6ff;border-color:#d5e6f7}.gx-ui .gx-btn-ghost:active,.gx-ui .gx-btn.gx-btn-icon:active{background:#dcecff}
.gx-ui .gx-btn.gx-btn-icon{width:36px;height:36px;min-height:36px;min-width:36px;padding:8px}.gx-ui .gx-btn.gx-btn-icon svg,.gx-ui .gx-btn svg{width:18px;height:18px;flex-shrink:0}.gx-ui .gx-btn.gx-btn-icon{display:flex;align-items:center;justify-content:center}.gx-ui .gx-btn-full{width:100%}
.gx-ui .gx-btn:active:not(:disabled):not([aria-disabled=true]){transform:translateY(1px)}.gx-ui .gx-btn:focus-visible{outline:3px solid #0878f940;outline-offset:2px}.gx-ui .gx-btn:disabled,.gx-ui .gx-btn[aria-disabled=true]{opacity:1;color:#fff;background:#596b7f;border-color:#596b7f;cursor:not-allowed;box-shadow:none}.gx-ui .gx-btn[aria-busy=true]{cursor:progress}.gx-ui .gx-btn[aria-busy=true]::after{content:'';width:12px;height:12px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:gx-loading .8s linear infinite}@keyframes gx-loading{to{rotate:360deg}}@media(prefers-reduced-motion:reduce){.gx-ui .gx-btn{transition:none}.gx-ui .gx-btn[aria-busy=true]::after{animation:none}}
.gx-ui .gx-action-link:hover{background:#0878f915}.gx-ui .gx-action-link:active{background:#0878f925}.gx-ui .gx-action-link:focus-visible{outline:3px solid #0878f940;outline-offset:2px}.gx-ui .gx-action-link[aria-disabled=true]{opacity:.45;pointer-events:none}

.gx-ui .gx-btn > .gx-btn-icon{display:flex;align-items:center;justify-content:center}

.gx-ui[data-gx-theme=dark] .gx-btn-ghost,.gx-ui[data-gx-theme=dark] .gx-btn.gx-btn-icon{color:#b8d9ee;background:transparent}
.gx-ui[data-gx-theme=dark] .gx-btn-ghost:hover,.gx-ui[data-gx-theme=dark] .gx-btn.gx-btn-icon:hover{color:#fff;background:#0878f9;border-color:#0878f9}
.gx-ui[data-gx-theme=dark] .gx-btn-ghost:active,.gx-ui[data-gx-theme=dark] .gx-btn.gx-btn-icon:active{background:#0057c2}
.gx-ui[data-gx-theme=dark] .gx-btn:disabled,.gx-ui[data-gx-theme=dark] .gx-btn[aria-disabled=true]{color:#fff;background:#596b7f;border-color:#596b7f;opacity:1}
.gx-ui .gx-menu-wrap{position:relative;display:inline-flex;align-items:center}
.gx-ui .gx-menu{position:absolute;z-index:50;top:calc(100% + 6px);right:0;min-width:180px;padding:6px;border:1px solid var(--gx-border);border-radius:var(--gx-radius);background:var(--gx-bg-light);box-shadow:0 8px 24px #00172540}
.gx-ui .gx-menu[hidden]{display:none}
.gx-ui .gx-menu .gx-btn{width:100%;white-space:nowrap}
.gx-ui[data-gx-theme=dark] .gx-menu{background:#00284d;border-color:#0878f9}
