.umbp-shell,
.umbp-shell *,
.umbp-view-page,
.umbp-view-page *,
.umbp-standalone,
.umbp-standalone *{box-sizing:border-box}

.umbp-shell{
  --bp-bg:#181818;--bp-bg2:#202020;--bp-panel:#232323;--bp-panel2:#141414;--bp-border:#383838;--bp-soft:#303030;--bp-text:#fff;--bp-muted:#a9a9a9;--bp-blue:#168fff;--bp-cyan:#55e6c7;--bp-radius:22px;
  width:100%;max-width:100%;margin:0 0 24px;padding:clamp(18px,3vw,30px);border:1px solid var(--bp-border);border-radius:24px;background:linear-gradient(180deg,#232323 0%,#181818 100%);box-shadow:0 20px 48px rgba(0,0,0,.34);color:var(--bp-text);font-family:"Play","Segoe UI",Arial,sans-serif;font-weight:400;line-height:1.5
}
.umbp-shell button,.umbp-shell input,.umbp-shell select,.umbp-shell textarea,.umbp-view-page button{font:inherit}
.umbp-kicker{margin-bottom:8px;color:var(--bp-muted,#a9a9a9);font-size:12px;font-weight:400;letter-spacing:.16em;text-transform:uppercase}
.umbp-head h2{margin:0 0 10px;color:#fff;font-size:clamp(24px,4vw,34px);line-height:1.15;font-weight:400;letter-spacing:-.03em}
.umbp-head p{max-width:980px;margin:0 0 22px;color:#d8d8d8;font-size:clamp(14px,1.45vw,16px);line-height:1.7;font-weight:400}
.umbp-grid-form{display:grid;grid-template-columns:minmax(260px,1fr) 170px 170px 170px;gap:14px;margin:20px 0}
.umbp-field{display:flex;min-width:0;flex-direction:column;gap:8px;color:#fff;font-size:14px;font-weight:400}
.umbp-field span{color:#fff}.umbp-field em{color:#888;font-style:normal;font-size:12px;font-weight:400}
.umbp-field input,.umbp-field select,.umbp-field textarea{width:100%;border:1px solid #3a3a3a;border-radius:14px;background:#151515;color:#fff;outline:none;box-shadow:none;font-weight:400;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}
.umbp-field input,.umbp-field select{height:48px;padding:0 14px}.umbp-field textarea{min-height:280px;padding:14px;resize:vertical;font-family:"Consolas","SFMono-Regular",monospace;font-size:13px;line-height:1.45;white-space:pre;background:#111}
.umbp-field input:focus,.umbp-field select:focus,.umbp-field textarea:focus{border-color:var(--bp-cyan);box-shadow:0 0 0 3px rgba(85,230,199,.12);background:#161616}
.umbp-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:18px}.umbp-btn{appearance:none;border:0;border-radius:999px;padding:14px 24px;background:linear-gradient(135deg,#2d9cff,#0878ef);color:#fff;cursor:pointer;box-shadow:0 10px 24px rgba(0,126,255,.28);font-weight:600}.umbp-btn:hover{transform:translateY(-1px);filter:brightness(1.05)}.umbp-hint{color:#aaa;font-size:13px}.umbp-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.umbp-list-item{display:flex;justify-content:space-between;gap:12px;padding:14px 16px;border:1px solid #333;border-radius:16px;background:#171717;color:#fff;text-decoration:none}.umbp-list-item:hover{border-color:#55e6c7}.umbp-list-item small{color:#aaa}.umbp-empty{color:#aaa}

.umbp-standalone{margin:0;background:#121212;color:#fff;font-family:"Play","Segoe UI",Arial,sans-serif;font-weight:400}.umbp-view-page{min-height:100vh;background:radial-gradient(circle at top left,rgba(57,47,160,.55),transparent 34%),radial-gradient(circle at top right,rgba(0,170,255,.32),transparent 30%),#121212;color:#fff;font-family:"Play","Segoe UI",Arial,sans-serif}.umbp-topbar{height:84px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 clamp(18px,5vw,56px);border-bottom:1px solid rgba(255,255,255,.08);background:linear-gradient(90deg,rgba(53,32,155,.84),rgba(0,145,214,.55));backdrop-filter:blur(8px)}.umbp-logo{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none;font-size:26px;font-weight:700;letter-spacing:-.03em}.umbp-logo-mark{color:#55e6c7;font-size:32px;line-height:1}.umbp-nav{display:flex;gap:10px;flex-wrap:wrap}.umbp-mini-btn{height:42px;border:1px solid rgba(255,255,255,.55);border-radius:999px;background:rgba(255,255,255,.08);color:#fff;padding:0 16px;cursor:pointer;font-weight:400}.umbp-mini-btn:hover{background:rgba(255,255,255,.16)}.umbp-view-wrap{width:min(1840px,calc(100% - 32px));margin:18px auto 26px}.umbp-view-meta{display:flex;align-items:end;justify-content:space-between;gap:18px;margin:0 0 12px}.umbp-view-meta h1{margin:0;color:#fff;font-size:clamp(22px,3vw,34px);font-weight:400;letter-spacing:-.03em}.umbp-view-status{color:#bfbfbf;font-size:13px;text-align:right}.umbp-graph-box{position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.08);border-radius:9px;background:#202020;box-shadow:0 18px 48px rgba(0,0,0,.28)}.umbp-toolbar{height:40px;display:flex;align-items:center;gap:12px;padding:0 12px;background:#141414;border-bottom:1px solid #2b2b2b;color:#fff;font-weight:600}.umbp-toolbar button{border:0;background:transparent;color:#fff;cursor:pointer;padding:0;font-weight:700}.umbp-toolbar button:hover{color:#55e6c7}.umbp-toolbar button.is-dirty{color:#55e6c7;text-shadow:0 0 12px rgba(85,230,199,.35)}.umbp-toolbar button:disabled{opacity:.55;cursor:wait}.umbp-toolbar span{color:#9bd0ff}.umbp-toolbar strong{margin-left:auto;color:#777;font-weight:700}.umbp-viewport{position:relative;height:calc(100vh - 190px);min-height:520px;overflow:hidden;cursor:grab;background-color:#242424;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.09) 1px,transparent 1px);background-size:32px 32px,32px 32px,128px 128px,128px 128px}.umbp-viewport.is-dragging{cursor:grabbing}.umbp-canvas{position:absolute;left:0;top:0;width:3000px;height:2000px;transform-origin:0 0}.umbp-links{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:2}.umbp-nodes{position:absolute;inset:0;z-index:3}.umbp-node{position:absolute;min-width:180px;max-width:390px;border:1px solid rgba(255,255,255,.16);border-radius:8px;background:#1b1b1b;box-shadow:0 10px 24px rgba(0,0,0,.35);overflow:hidden;color:#fff;font-size:12px;cursor:grab;touch-action:none;user-select:none;transition:box-shadow .15s ease,border-color .15s ease}.umbp-node.is-moving{cursor:grabbing;border-color:#55e6c7;box-shadow:0 16px 36px rgba(0,0,0,.48),0 0 0 1px rgba(85,230,199,.35)}.umbp-node-title{display:flex;align-items:center;gap:8px;min-height:31px;padding:7px 10px;border-bottom:1px solid rgba(255,255,255,.1);font-weight:700;white-space:nowrap}.umbp-node-title:before{content:"";width:10px;height:10px;border-radius:50%;background:#fff;flex:0 0 auto}.umbp-node-event .umbp-node-title{background:linear-gradient(180deg,#8d1111,#520606)}.umbp-node-func .umbp-node-title{background:linear-gradient(180deg,#315c72,#203a4a)}.umbp-node-branch .umbp-node-title{background:linear-gradient(180deg,#555,#303030)}.umbp-node-switch .umbp-node-title{background:linear-gradient(180deg,#77751c,#38370b)}.umbp-node-var .umbp-node-title{background:linear-gradient(180deg,#60355d,#342032)}.umbp-pins{display:grid;grid-template-columns:1fr 1fr;gap:0;padding:7px 0}.umbp-pin-col{display:flex;flex-direction:column;gap:5px;min-width:0}.umbp-pin{position:relative;display:flex;align-items:center;gap:6px;min-height:22px;padding:2px 10px;color:#fff;white-space:nowrap}.umbp-pin.in{justify-content:flex-start}.umbp-pin.out{justify-content:flex-end;text-align:right}.umbp-pin-dot{width:12px;height:12px;border-radius:50%;background:#777;box-shadow:0 0 0 1px rgba(0,0,0,.65);flex:0 0 auto}.umbp-pin.exec .umbp-pin-dot{width:0;height:0;border-radius:0;background:transparent;border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:10px solid #fff;box-shadow:none}.umbp-pin.in.exec .umbp-pin-dot{border-left:10px solid #fff}.umbp-pin.bool .umbp-pin-dot{background:#d01010}.umbp-pin.byte .umbp-pin-dot,.umbp-pin.name .umbp-pin-dot{background:#06a2a8}.umbp-pin.float .umbp-pin-dot,.umbp-pin.double .umbp-pin-dot{background:#78d676}.umbp-pin.int .umbp-pin-dot{background:#72adff}.umbp-pin.string .umbp-pin-dot{background:#d65bd4}.umbp-pin.object .umbp-pin-dot{background:#3f76ff}.umbp-pin-text-wrap{display:flex;min-width:0;flex-direction:column;gap:2px}.umbp-pin-text{overflow:hidden;text-overflow:ellipsis;max-width:170px}.umbp-pin-value{display:block;max-width:210px;overflow:hidden;text-overflow:ellipsis;border:1px solid rgba(255,255,255,.08);border-radius:5px;background:rgba(255,255,255,.055);padding:2px 5px;color:#f2f2f2;font-size:10px;line-height:1.2;font-family:"Consolas","SFMono-Regular",monospace;text-align:left}.umbp-pin.out .umbp-pin-value{text-align:right}.umbp-wire{filter:drop-shadow(0 0 2px rgba(0,0,0,.55))}.umbp-raw-data{display:none}.umbp-toast{position:fixed;left:50%;bottom:24px;z-index:99999;transform:translateX(-50%);padding:10px 15px;border-radius:999px;background:#111;color:#fff;border:1px solid #333;box-shadow:0 10px 30px rgba(0,0,0,.35);font-family:"Play","Segoe UI",Arial,sans-serif;font-size:13px}

@media (max-width:980px){.umbp-grid-form{grid-template-columns:1fr 1fr}.umbp-field-title{grid-column:1/-1}.umbp-topbar{height:auto;min-height:76px;align-items:flex-start;flex-direction:column;padding-top:16px;padding-bottom:16px}.umbp-view-meta{align-items:flex-start;flex-direction:column}.umbp-viewport{height:70vh;min-height:460px}.umbp-nav{width:100%}.umbp-mini-btn{flex:1}}
@media (max-width:640px){.umbp-shell{padding:18px;border-radius:18px}.umbp-grid-form{grid-template-columns:1fr}.umbp-field textarea{min-height:240px}.umbp-actions{align-items:stretch;flex-direction:column}.umbp-btn{width:100%}.umbp-view-wrap{width:calc(100% - 16px);margin:8px auto}.umbp-toolbar{gap:8px;font-size:12px;overflow-x:auto}.umbp-logo{font-size:21px}.umbp-viewport{height:72vh;min-height:420px}}


/* v1.2.0: readable strings, bool variables, embedded preview accordion */
.umbp-node{max-width:560px}
.umbp-node-printstring{min-width:360px;max-width:620px}
.umbp-node-printstring .umbp-pin-text{max-width:190px}
.umbp-node-printstring .umbp-pin-value,
.umbp-pin.string .umbp-pin-value,
.umbp-pin.text .umbp-pin-value{max-width:380px;white-space:normal;overflow:visible;text-overflow:clip;word-break:break-word;font-size:11px;line-height:1.35;padding:4px 7px;background:rgba(255,255,255,.075)}
.umbp-node-var-bool .umbp-node-title{background:linear-gradient(180deg,#7d1212,#3a0707)}
.umbp-node-var-bool .umbp-node-title:before{background:#d01010;box-shadow:0 0 0 1px rgba(0,0,0,.65),0 0 12px rgba(208,16,16,.45)}
.umbp-node-var-bool .umbp-pin.bool .umbp-pin-dot{background:#d01010!important}
.umbp-preview-accordion{width:100%;margin:18px 0;border:1px solid rgba(255,255,255,.09);border-radius:14px;overflow:hidden;background:#141414;color:#fff;font-family:"Play","Segoe UI",Arial,sans-serif;box-shadow:0 14px 34px rgba(0,0,0,.25)}
.umbp-preview-toggle{width:100%;min-height:52px;display:flex;align-items:center;gap:14px;padding:12px 16px;border:0;background:linear-gradient(90deg,#191919,#202020);color:#fff;cursor:pointer;text-align:left;font:inherit;font-weight:400}
.umbp-preview-toggle:hover{background:linear-gradient(90deg,#202020,#262626)}
.umbp-preview-toggle:focus{outline:2px solid rgba(85,230,199,.55);outline-offset:-2px}
.umbp-preview-title{font-size:16px;line-height:1.25;font-weight:400;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.umbp-preview-toggle small{margin-left:auto;color:#a8a8a8;font-size:12px;font-weight:400;white-space:nowrap}
.umbp-preview-toggle b{font-size:20px;color:#55e6c7;transition:transform .2s ease;font-weight:400;line-height:1}
.umbp-preview-accordion.is-open .umbp-preview-toggle b{transform:rotate(180deg)}
.umbp-preview-body{border-top:1px solid rgba(255,255,255,.08);background:#202020}
.umbp-preview-wrap{width:100%;margin:0;padding:0}
.umbp-preview-box{border:0;border-radius:0;box-shadow:none}
.umbp-preview-box .umbp-viewport{height:var(--umbp-preview-height,840px);min-height:520px}
.umbp-preview-error{margin:12px 0;padding:12px 14px;border:1px solid rgba(255,80,80,.35);border-radius:12px;background:rgba(120,20,20,.18);color:#fff;font-family:"Play","Segoe UI",Arial,sans-serif}
@media (max-width:640px){.umbp-node-printstring{min-width:300px}.umbp-node-printstring .umbp-pin-value,.umbp-pin.string .umbp-pin-value,.umbp-pin.text .umbp-pin-value{max-width:270px}.umbp-preview-toggle{align-items:flex-start;flex-direction:column;gap:4px}.umbp-preview-toggle small{margin-left:0}.umbp-preview-toggle b{position:absolute;right:14px}.umbp-preview-box .umbp-viewport{height:min(var(--umbp-preview-height,840px),90vh)}}

/* v1.3.0: accurate UE-style pin links and node colors */
.umbp-node-title{font-size:12px;text-shadow:0 1px 0 rgba(0,0,0,.45)}
.umbp-node-set .umbp-node-title{background:linear-gradient(180deg,#3d3d3d,#1f1f1f)}
.umbp-node-var-object .umbp-node-title,.umbp-node-type-object .umbp-node-title{background:linear-gradient(180deg,#275b68,#17333c)}
.umbp-node-var-name .umbp-node-title,.umbp-node-type-name .umbp-node-title{background:linear-gradient(180deg,#126267,#08383d)}
.umbp-node-var-array .umbp-node-title,.umbp-node-array .umbp-node-title,.umbp-node-type-array .umbp-node-title{background:linear-gradient(180deg,#665182,#372846)}
.umbp-node-type-byte .umbp-node-title{background:linear-gradient(180deg,#61743a,#303b1d)}
.umbp-node-type-string .umbp-node-title,.umbp-node-type-text .umbp-node-title{background:linear-gradient(180deg,#6f3f70,#3b203c)}
.umbp-node-macro .umbp-node-title{background:linear-gradient(180deg,#5c5c5c,#303030)}
.umbp-node-func .umbp-node-title{background:linear-gradient(180deg,#2e6381,#173a4d)}
.umbp-node-pinless .umbp-pins{display:none}
.umbp-pin.array .umbp-pin-dot{background:#9b65d6!important}
.umbp-pin.object .umbp-pin-dot{background:#2fa6c9!important}
.umbp-pin.name .umbp-pin-dot{background:#06a2a8!important}
.umbp-pin.byte .umbp-pin-dot{background:#86c95d!important}
.umbp-pin.bool .umbp-pin-dot{background:#d01010!important}
.umbp-node-printstring{min-width:430px;max-width:760px}
.umbp-node-printstring .umbp-pin-value,.umbp-pin.string .umbp-pin-value,.umbp-pin.text .umbp-pin-value{max-width:560px;min-width:180px;font-size:11.5px;line-height:1.45;white-space:normal;overflow:visible;text-overflow:clip;word-break:break-word;color:#fff;background:rgba(255,255,255,.09)}
.umbp-node-knot{min-width:0!important;width:28px;height:28px;border:0;border-radius:50%;background:transparent;box-shadow:none;overflow:visible}
.umbp-node-knot .umbp-node-title{display:none}
.umbp-node-knot .umbp-pins{display:block;padding:0}
.umbp-node-knot .umbp-pin-col{position:absolute;left:0;top:0;width:28px;height:28px;display:block}
.umbp-node-knot .umbp-pin{position:absolute;left:8px;top:8px;width:12px;height:12px;min-height:0;padding:0;font-size:0;justify-content:center}
.umbp-node-knot .umbp-pin.in{left:3px}.umbp-node-knot .umbp-pin.out{left:13px}
.umbp-node-knot .umbp-pin-text-wrap{display:none}.umbp-node-knot .umbp-pin-dot{width:10px;height:10px;background:#cfcfcf!important;border-radius:50%;border:1px solid #111}
@media (max-width:640px){.umbp-node-printstring{min-width:320px}.umbp-node-printstring .umbp-pin-value,.umbp-pin.string .umbp-pin-value,.umbp-pin.text .umbp-pin-value{max-width:300px}}


/* v1.3.1: preview window height increased by 2x */
.umbp-preview-box .umbp-viewport{height:var(--umbp-preview-height,840px);min-height:520px}
@media (max-width:640px){.umbp-preview-box .umbp-viewport{height:min(var(--umbp-preview-height,840px),90vh)}}


/* v1.3.2: align preview toggle arrow on the right */
.umbp-preview-toggle{position:relative;padding-right:48px}
.umbp-preview-toggle small{margin-right:6px}
.umbp-preview-toggle b{position:absolute;right:16px;top:50%;display:flex;align-items:center;justify-content:center;width:20px;height:20px;margin:0;line-height:20px;transform:translateY(-50%)}
.umbp-preview-accordion.is-open .umbp-preview-toggle b{transform:translateY(-50%) rotate(180deg)}
@media (max-width:640px){.umbp-preview-toggle b{right:14px;top:50%;transform:translateY(-50%)}.umbp-preview-accordion.is-open .umbp-preview-toggle b{transform:translateY(-50%) rotate(180deg)}}


/* v1.3.3: preview arrow removed */
.umbp-preview-toggle{padding-right:16px!important}
.umbp-preview-toggle b{display:none!important}
.umbp-preview-toggle small{margin-right:0!important}
.umbp-preview-accordion.is-open .umbp-preview-toggle b{transform:none!important}
@media (max-width:640px){.umbp-preview-toggle b{display:none!important}}


/* v1.3.7: Unreal-like priority colors. Event nodes must stay red regardless of pin type classes. */
.umbp-node-event .umbp-node-title{background:linear-gradient(180deg,#8d1111,#520606)!important}
.umbp-node-event .umbp-node-title:before{background:#fff!important;box-shadow:0 0 0 1px rgba(0,0,0,.65)}

/* v1.3.8: multi-node selection and group moving in layout editor */
.umbp-node.is-selected{border-color:#55e6c7!important;box-shadow:0 12px 28px rgba(0,0,0,.46),0 0 0 2px rgba(85,230,199,.85),0 0 22px rgba(85,230,199,.18)}
.umbp-node.is-selected .umbp-node-title{filter:brightness(1.08)}
.umbp-selection-box{position:absolute;z-index:20;border:1px solid #55e6c7;background:rgba(85,230,199,.12);box-shadow:0 0 0 1px rgba(85,230,199,.25) inset,0 0 24px rgba(85,230,199,.18);pointer-events:none;border-radius:4px}
.umbp-viewport.is-selecting{cursor:crosshair}

.umbp-node-bool-op .umbp-node-title{background:linear-gradient(180deg,#7d1212,#3a0707)!important}.umbp-node-bool-op .umbp-node-title:before{background:#d01010!important;box-shadow:0 0 0 1px rgba(0,0,0,.65),0 0 12px rgba(208,16,16,.45)}.umbp-node-bool-op .umbp-pin.bool .umbp-pin-dot{background:#d01010!important}


/* v1.4.0: compact Unreal-like Print String node. Keep only main pins and make string readable. */
.umbp-node-printstring{
  min-width:250px!important;
  max-width:380px!important;
}
.umbp-node-printstring .umbp-node-title{
  min-height:28px;
  padding:6px 10px;
}
.umbp-node-printstring .umbp-pins{
  padding:6px 0 8px;
  gap:0;
}
.umbp-node-printstring .umbp-pin{
  min-height:20px;
  padding:2px 10px;
}
.umbp-node-printstring .umbp-pin-text{
  max-width:150px;
}
.umbp-node-printstring .umbp-pin-value{
  max-width:285px!important;
  min-width:0!important;
  width:max-content;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  word-break:break-word;
  font-size:10.5px!important;
  line-height:1.25!important;
  padding:3px 7px!important;
  background:rgba(255,255,255,.085)!important;
}
@media (max-width:640px){
  .umbp-node-printstring{min-width:235px!important;max-width:330px!important}
  .umbp-node-printstring .umbp-pin-value{max-width:245px!important}
}


/* v1.4.1: object/struct/class variable nodes stay dark blue like Unreal variable nodes. */
.umbp-node-var-object .umbp-node-title,
.umbp-node-type-object .umbp-node-title,
.umbp-node-type-class .umbp-node-title,
.umbp-node-type-struct .umbp-node-title{
  background:linear-gradient(180deg,#275b68,#17333c)!important;
}
.umbp-node-var-object .umbp-node-title:before,
.umbp-node-type-object .umbp-node-title:before,
.umbp-node-type-class .umbp-node-title:before,
.umbp-node-type-struct .umbp-node-title:before{
  background:#dceeff!important;
  box-shadow:0 0 0 1px rgba(0,0,0,.65),0 0 10px rgba(47,166,201,.28)!important;
}
.umbp-node-type-struct .umbp-pin.struct .umbp-pin-dot,
.umbp-node-type-class .umbp-pin.class .umbp-pin-dot,
.umbp-node-type-object .umbp-pin.object .umbp-pin-dot{
  background:#2fa6c9!important;
}


/* v1.4.2: make object/struct/class variable nodes truly dark blue, not teal/cyan. */
.umbp-node-var-object .umbp-node-title,
.umbp-node-type-object .umbp-node-title,
.umbp-node-type-class .umbp-node-title,
.umbp-node-type-struct .umbp-node-title{
  background:linear-gradient(180deg,#173d8f,#07183f)!important;
}
.umbp-node-var-object .umbp-node-title:before,
.umbp-node-type-object .umbp-node-title:before,
.umbp-node-type-class .umbp-node-title:before,
.umbp-node-type-struct .umbp-node-title:before{
  background:#dceeff!important;
  box-shadow:0 0 0 1px rgba(0,0,0,.7),0 0 10px rgba(43,121,255,.30)!important;
}
.umbp-node-type-struct .umbp-pin.struct .umbp-pin-dot,
.umbp-node-type-class .umbp-pin.class .umbp-pin-dot,
.umbp-node-type-object .umbp-pin.object .umbp-pin-dot,
.umbp-node-var-object .umbp-pin.object .umbp-pin-dot{
  background:#2b79ff!important;
}
