.hvac-diagram{--hvac-background:#0f1720;--hvac-surface:#16232e;--hvac-stroke:#9fb3c1;--hvac-text:#e6eef3;--hvac-running:#33c481;--hvac-stopped:#7d8b95;--hvac-alarm:#ff4d4f;--hvac-medium-chilled-water:#4da3ff;--hvac-medium-condenser-water:#3fb8af;--hvac-medium-hot-water:#ff7849;--hvac-medium-air:#c3ceda;--hvac-pipe-blue-border:#1763a6;--hvac-pipe-blue-core:#2f9bff;--hvac-pipe-blue-flow:#a7daff;--hvac-pipe-red-border:#a8323d;--hvac-pipe-red-core:#ff5967;--hvac-pipe-red-flow:#ffc1c7;--hvac-pipe-white-border:#8b9dad;--hvac-pipe-white-core:#e8f0f7;--hvac-pipe-white-flow:#fff;--hvac-pipe-orange-border:#a96219;--hvac-pipe-orange-core:#ff9f32;--hvac-pipe-orange-flow:#ffd29a;--hvac-pipe-green-border:#197a49;--hvac-pipe-green-core:#32d17d;--hvac-pipe-green-flow:#a4f2c8;--hvac-port:#9fb3c1;--hvac-label-background:#0f1720d9;background:var(--hvac-background);width:100%;height:100%}.hvac-diagram__canvas{width:100%;height:100%}.hvac-diagram__context-menu{z-index:1000;border:1px solid color-mix(in srgb, var(--hvac-stroke) 55%, transparent);background:var(--hvac-surface);border-radius:6px;min-width:176px;padding:4px;position:fixed;box-shadow:0 10px 28px #0006}.hvac-diagram__context-menu-action{width:100%;color:var(--hvac-text);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;border-radius:4px;align-items:center;gap:9px;padding:8px 10px;font-size:13px;line-height:1.35;display:flex}.hvac-diagram__context-menu-action:before{color:var(--hvac-medium-chilled-water);content:"{ }";font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;font-weight:700}.hvac-diagram__context-menu-action:hover{background:color-mix(in srgb, var(--hvac-stroke) 14%, transparent)}.hvac-diagram__context-menu-action:focus-visible{outline:2px solid var(--hvac-medium-chilled-water);outline-offset:-2px}.hvac-device-frame{width:100%;height:100%;color:var(--hvac-text);display:block;overflow:visible}.hvac-device-frame__name,.hvac-device-frame__status,.hvac-chiller__label,.hvac-heat-exchanger__section-label{fill:var(--hvac-text);font-size:10px}.hvac-device-frame__name{font-weight:600}.hvac-pump__stub,.hvac-valve__stub,.hvac-chiller__stub,.hvac-heat-exchanger__stub{stroke:var(--hvac-stroke);stroke-width:3px}.hvac-pump__casing,.hvac-chiller__body,.hvac-heat-exchanger__shell,.hvac-heat-exchanger__section-body{fill:var(--hvac-surface);stroke:var(--hvac-stroke);stroke-width:2px}.hvac-heat-exchanger__shell{fill:color-mix(in srgb, var(--hvac-surface) 78%, transparent)}.hvac-heat-exchanger__section-body{fill:var(--hvac-background)}.hvac-heat-exchanger__section[data-section-kind=evaporator] .hvac-heat-exchanger__section-body{stroke:var(--hvac-medium-chilled-water)}.hvac-heat-exchanger__section[data-section-kind=condenser] .hvac-heat-exchanger__section-body{stroke:var(--hvac-medium-condenser-water)}.hvac-heat-exchanger__coil{fill:none;stroke:var(--hvac-medium-chilled-water);stroke-linecap:round;stroke-width:3px}.hvac-heat-exchanger__fins{stroke:var(--hvac-medium-condenser-water);stroke-linecap:round;stroke-width:3px}.hvac-heat-exchanger__section-label{letter-spacing:.08em;font-size:10px;font-weight:700}.hvac-pump__impeller path{fill:var(--hvac-stopped)}.hvac-device-frame[data-running=true] .hvac-pump__impeller path{fill:var(--hvac-running)}.hvac-chiller__compressor{fill:none;stroke:var(--hvac-stroke);stroke-width:2px}.hvac-chiller__symbol{fill:var(--hvac-stroke)}.hvac-device-frame[data-running=true] .hvac-chiller__symbol{fill:var(--hvac-running)}.hvac-valve__body{fill:var(--hvac-surface);stroke:var(--hvac-stroke);stroke-width:2px}.hvac-valve__stem{stroke:var(--hvac-stroke);stroke-width:2px}.hvac-valve__actuator{fill:var(--hvac-surface);stroke:var(--hvac-stroke);stroke-width:2px}.hvac-valve__position-track{fill:var(--hvac-surface);stroke:var(--hvac-stroke);stroke-width:.5px}.hvac-valve__position-bar{fill:var(--hvac-running)}.hvac-device-frame[data-running=true] .hvac-pump__casing,.hvac-device-frame[data-running=true] .hvac-chiller__body,.hvac-device-frame[data-running=true] .hvac-valve__body,.hvac-device-frame[data-running=true] .hvac-heat-exchanger__shell{stroke:var(--hvac-running)}.hvac-device-frame[data-alarm=true]{filter:drop-shadow(0 0 6px var(--hvac-alarm))}.hvac-device-frame[data-alarm=true] .hvac-pump__casing,.hvac-device-frame[data-alarm=true] .hvac-chiller__body,.hvac-device-frame[data-alarm=true] .hvac-valve__body,.hvac-device-frame[data-alarm=true] .hvac-heat-exchanger__shell{stroke:var(--hvac-alarm)}.hvac-pipe__border,.hvac-pipe__core,.hvac-pipe__flow{fill:none;stroke-linecap:round;stroke-linejoin:round}.hvac-pipe__border{stroke-width:9px}.hvac-pipe__core{stroke-width:7px}.hvac-pipe__border--blue{stroke:var(--hvac-pipe-blue-border)}.hvac-pipe__core--blue{stroke:var(--hvac-pipe-blue-core)}.hvac-pipe__border--red{stroke:var(--hvac-pipe-red-border)}.hvac-pipe__core--red{stroke:var(--hvac-pipe-red-core)}.hvac-pipe__border--white{stroke:var(--hvac-pipe-white-border)}.hvac-pipe__core--white{stroke:var(--hvac-pipe-white-core)}.hvac-pipe__border--orange{stroke:var(--hvac-pipe-orange-border)}.hvac-pipe__core--orange{stroke:var(--hvac-pipe-orange-core)}.hvac-pipe__border--green{stroke:var(--hvac-pipe-green-border)}.hvac-pipe__core--green{stroke:var(--hvac-pipe-green-core)}.hvac-pipe__flow{stroke-width:2.5px;filter:drop-shadow(0 0 2px)drop-shadow(0 0 4px)}.hvac-pipe__flow--blue{color:var(--hvac-pipe-blue-flow);stroke:var(--hvac-pipe-blue-flow)}.hvac-pipe__flow--red{color:var(--hvac-pipe-red-flow);stroke:var(--hvac-pipe-red-flow)}.hvac-pipe__flow--white{color:var(--hvac-pipe-white-flow);stroke:var(--hvac-pipe-white-flow)}.hvac-pipe__flow--orange{color:var(--hvac-pipe-orange-flow);stroke:var(--hvac-pipe-orange-flow)}.hvac-pipe__flow--green{color:var(--hvac-pipe-green-flow);stroke:var(--hvac-pipe-green-flow)}.hvac-pipe__label-body{fill:var(--hvac-label-background);stroke:var(--hvac-stroke);stroke-width:.5px;rx:3}.hvac-pipe__label-text{fill:var(--hvac-text);font-size:11px}.hvac-port{fill:var(--hvac-surface);stroke:var(--hvac-port);stroke-width:1.5px;opacity:.35}.hvac-diagram[data-mode=edit] .hvac-port{opacity:1}@keyframes hvac-pipe-flow{to{stroke-dashoffset:-20px}}.hvac-pipe__flow{animation-name:hvac-pipe-flow;animation-timing-function:linear;animation-iteration-count:infinite}.hvac-pipe__flow--reverse{animation-direction:reverse}.hvac-pipe__flow--stopped{animation-play-state:paused}.hvac-pump__impeller{transform-box:fill-box;transform-origin:50%}[data-running=true] .hvac-pump__impeller{animation:1.2s linear infinite hvac-pump-spin}[data-running=false] .hvac-pump__impeller{animation-play-state:paused}@keyframes hvac-pump-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.hvac-pipe__flow,.hvac-pump__impeller{animation-play-state:paused!important}}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}.react-grid-layout{transition:height .2s;position:relative}.react-grid-item{transition:left .2s,top .2s,width .2s,height .2s}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{z-index:1;will-change:width, height;transition:none}.react-grid-item.react-draggable-dragging{z-index:3;will-change:transform;transition:none}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{opacity:.2;z-index:2;-webkit-user-select:none;user-select:none;background:red;transition-duration:.1s}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{opacity:0;width:20px;height:20px;position:absolute}.react-grid-item:hover>.react-resizable-handle{opacity:1}.react-grid-item>.react-resizable-handle:after{content:"";border-bottom:2px solid #0006;border-right:2px solid #0006;width:5px;height:5px;position:absolute;bottom:3px;right:3px}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{cursor:sw-resize;bottom:0;left:0;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{cursor:se-resize;bottom:0;right:0}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{cursor:nw-resize;top:0;left:0;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{cursor:ne-resize;top:0;right:0;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{cursor:ew-resize;margin-top:-10px;top:50%}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{cursor:ns-resize;margin-left:-10px;left:50%}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.react-resizable{position:relative}.react-resizable-handle{box-sizing:border-box;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+);background-position:100% 100%;background-repeat:no-repeat;background-origin:content-box;width:20px;height:20px;padding:0 3px 3px 0;position:absolute}.react-resizable-handle-sw{cursor:sw-resize;bottom:0;left:0;transform:rotate(90deg)}.react-resizable-handle-se{cursor:se-resize;bottom:0;right:0}.react-resizable-handle-nw{cursor:nw-resize;top:0;left:0;transform:rotate(180deg)}.react-resizable-handle-ne{cursor:ne-resize;top:0;right:0;transform:rotate(270deg)}.react-resizable-handle-w,.react-resizable-handle-e{cursor:ew-resize;margin-top:-10px;top:50%}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{cursor:ns-resize;margin-left:-10px;left:50%}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-500:oklch(63.7% .237 25.331);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-cyan-300:oklch(86.5% .127 207.078);--color-cyan-500:oklch(71.5% .143 215.221);--color-cyan-700:oklch(52% .105 223.128);--color-cyan-950:oklch(30.2% .056 229.695);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-900:oklch(20.8% .042 265.755);--color-slate-950:oklch(12.9% .042 264.695);--color-neutral-950:oklch(14.5% 0 none);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--leading-tight:1.25;--leading-snug:1.375;--radius-sm:.25rem;--radius-md:.375rem;--radius-2xl:1rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.\!mb-0{margin-bottom:0!important}.mb-0{margin-bottom:0}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-7{margin-bottom:calc(var(--spacing) * 7)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-full{width:100%;height:100%}.h-2{height:calc(var(--spacing) * 2)}.h-16{height:calc(var(--spacing) * 16)}.h-24{height:calc(var(--spacing) * 24)}.h-full{height:100%}.min-h-0{min-height:0}.min-h-24{min-height:calc(var(--spacing) * 24)}.min-h-80{min-height:calc(var(--spacing) * 80)}.min-h-\[60vh\]{min-height:60vh}.min-h-\[calc\(100vh-4rem\)\]{min-height:calc(100vh - 4rem)}.min-h-screen{min-height:100vh}.w-1{width:var(--spacing)}.w-2{width:calc(var(--spacing) * 2)}.w-44{width:calc(var(--spacing) * 44)}.w-full{width:100%}.w-screen{width:100vw}.max-w-3xl{max-width:var(--container-3xl)}.max-w-\[1440px\]{max-width:1440px}.max-w-\[calc\(100vw-32px\)\]{max-width:calc(100vw - 32px)}.max-w-none{max-width:none}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:0}.min-w-24{min-width:calc(var(--spacing) * 24)}.min-w-28{min-width:calc(var(--spacing) * 28)}.min-w-32{min-width:calc(var(--spacing) * 32)}.min-w-40{min-width:calc(var(--spacing) * 40)}.min-w-44{min-width:calc(var(--spacing) * 44)}.min-w-48{min-width:calc(var(--spacing) * 48)}.min-w-64{min-width:calc(var(--spacing) * 64)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.touch-none{touch-action:none}.resize{resize:both}.list-disc{list-style-type:disc}.grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.flex-col{flex-direction:column}.flex-nowrap{flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-cyan-300{border-color:var(--color-cyan-300)}.border-cyan-500\/25{border-color:#00b7d740}@supports (color:color-mix(in lab, red, red)){.border-cyan-500\/25{border-color:color-mix(in oklab, var(--color-cyan-500) 25%, transparent)}}.border-cyan-700\/20{border-color:#00749233}@supports (color:color-mix(in lab, red, red)){.border-cyan-700\/20{border-color:color-mix(in oklab, var(--color-cyan-700) 20%, transparent)}}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-700{border-color:var(--color-slate-700)}.bg-black\/5{background-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.bg-black\/5{background-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.bg-current{background-color:currentColor}.bg-neutral-950{background-color:var(--color-neutral-950)}.bg-slate-50\/70{background-color:#f8fafcb3}@supports (color:color-mix(in lab, red, red)){.bg-slate-50\/70{background-color:color-mix(in oklab, var(--color-slate-50) 70%, transparent)}}.bg-slate-100\/80{background-color:#f1f5f9cc}@supports (color:color-mix(in lab, red, red)){.bg-slate-100\/80{background-color:color-mix(in oklab, var(--color-slate-100) 80%, transparent)}}.bg-slate-900{background-color:var(--color-slate-900)}.bg-slate-950\/\[0\.04\]{background-color:#0206180a}@supports (color:color-mix(in lab, red, red)){.bg-slate-950\/\[0\.04\]{background-color:color-mix(in oklab, var(--color-slate-950) 4%, transparent)}}.object-cover{object-fit:cover}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-16{padding-block:calc(var(--spacing) * 16)}.pt-1{padding-top:var(--spacing)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-16{padding-top:calc(var(--spacing) * 16)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-left{text-align:left}.align-middle{vertical-align:middle}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\!text-\[28px\]{font-size:28px!important}.text-\[13px\]{font-size:13px}.text-\[32px\]{font-size:32px}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-none{--tw-leading:1;line-height:1}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.\!font-semibold{--tw-font-weight:var(--font-weight-semibold)!important;font-weight:var(--font-weight-semibold)!important}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.text-\[var\(--brand-primary\)\]{color:var(--brand-primary)}.text-amber-600{color:var(--color-amber-600)}.text-red-500{color:var(--color-red-500)}.text-slate-100{color:var(--color-slate-100)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-slate-500{color:var(--color-slate-500)}.text-white{color:var(--color-white)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.opacity-15{opacity:.15}.opacity-40{opacity:.4}.opacity-45{opacity:.45}.opacity-50{opacity:.5}.opacity-55{opacity:.55}.opacity-65{opacity:.65}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-amber-400\/70{--tw-ring-color:#fcbb00b3}@supports (color:color-mix(in lab, red, red)){.ring-amber-400\/70{--tw-ring-color:color-mix(in oklab, var(--color-amber-400) 70%, transparent)}}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.hover\:opacity-100:hover{opacity:1}}.focus-visible\:opacity-100:focus-visible{opacity:1}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-amber-500\/70:focus-visible{--tw-ring-color:#f99c00b3}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-amber-500\/70:focus-visible{--tw-ring-color:color-mix(in oklab, var(--color-amber-500) 70%, transparent)}}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}@media (width>=40rem){.sm\:flex{display:flex}}@media (width>=48rem){.md\:text-\[40px\]{font-size:40px}}.dark\:bg-cyan-950\/10:where(.dark,.dark *){background-color:#0533451a}@supports (color:color-mix(in lab, red, red)){.dark\:bg-cyan-950\/10:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-cyan-950) 10%, transparent)}}.dark\:bg-slate-950\/20:where(.dark,.dark *){background-color:#02061833}@supports (color:color-mix(in lab, red, red)){.dark\:bg-slate-950\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-slate-950) 20%, transparent)}}.dark\:bg-white\/10:where(.dark,.dark *){background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.dark\:bg-white\/10:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.\[\&_\.ant-result-icon\]\:hidden .ant-result-icon{display:none}}:root{--dashboard-editor-grid-cell:#0e749014;--dashboard-editor-resize-handle:#0891b2d1}:root.dark{--dashboard-editor-grid-cell:#0f766e24;--dashboard-editor-resize-handle:#22d3eec7}.dashboard-widget-content{-webkit-user-select:none;user-select:none;flex-direction:column;display:flex}.dashboard-widget-content>div{flex:1;min-height:0}.dashboard-editor-grid-canvas .dashboard-widget-content{background:#ffffffeb;border:1px solid #0891b22e;border-radius:6px;overflow:hidden;box-shadow:0 1px 2px #0f172a0f}.dashboard-widget-content[data-selected]{border-color:#0891b2b8;box-shadow:0 0 0 2px #22d3ee2e}.dashboard-widget-drag-handle{cursor:grab;touch-action:none;background:linear-gradient(90deg,#0891b214,#0000 55%),#f8fafceb;border-bottom:1px solid #0891b229;min-height:32px;padding:5px 8px}.dashboard-widget-drag-handle:active{cursor:grabbing}.dashboard-widget-action{color:#475569;cursor:pointer;background:0 0;border:0;border-radius:3px;font-size:11px;line-height:20px}.dashboard-widget-action:hover{color:#0e7490;background:#0891b21a}.dashboard-widget-order{color:#0e7490;text-align:center;background:#0891b21f;border-radius:9px;flex:none;min-width:18px;height:18px;padding:0 4px;font-size:11px;font-weight:600;line-height:18px}.dark .dashboard-editor-grid-canvas .dashboard-widget-content{box-shadow:none;background:#020617b8;border-color:#22d3ee33}.dark .dashboard-widget-drag-handle{background:linear-gradient(90deg,#0891b224,#0000 55%);border-bottom-color:#22d3ee2e}.dark .dashboard-widget-action{color:#94a3b8}.dark .dashboard-widget-order{color:#67e8f9;background:#22d3ee29}button.dashboard-widget-order{cursor:pointer;border:0;font-family:inherit}button.dashboard-widget-order:hover{color:#0e7490;background:#0891b238}.dashboard-widget-order-input{color:#0e7490;text-align:center;background:#fffffff2;border:1px solid #0891b266;border-radius:9px;flex:none;width:34px;height:18px;font-size:11px;line-height:18px}.dark .dashboard-widget-order-input{color:#67e8f9;background:#02061799;border-color:#22d3ee4d}.dashboard-editor-grid-canvas .react-grid-item.react-grid-placeholder{opacity:1;background:#22d3ee24;border:1px dashed #0891b2ad}.dashboard-editor-grid-layout>.react-grid-item>.react-resizable-handle{z-index:2;opacity:.76;touch-action:none;width:24px;height:24px}.dashboard-editor-grid-layout>.react-grid-item:hover>.react-resizable-handle,.dashboard-editor-grid-layout>.react-grid-item.resizing>.react-resizable-handle{opacity:1}.dashboard-editor-grid-layout>.react-grid-item>.react-resizable-handle:after{border-color:var(--dashboard-editor-resize-handle);width:7px;height:7px;bottom:5px;right:5px}:root{--font-instrument:"IBM Plex Mono", ui-monospace, "Cascadia Mono", "Segoe UI Mono", "SF Mono", Consolas, "Liberation Mono", Menlo, monospace;--brand-primary:#0071e3;--brand-primary-deep:#0060c9;--heat-cool:#2e86ab;--heat-mid:#3fa7a0;--heat-warm:#f2a81e;--heat-hot:#ec6a2c;--heat-critical:#d8402e}html,body,#root{height:100%}:root{--page-bg:#f5f5f7;background-color:var(--page-bg)}:root.dark{--page-bg:#000}body,#root{background-color:var(--page-bg)}.ant-layout-has-sider,.ant-layout-sider{min-height:100vh}body{-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-family:system-ui,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}.tabular{font-family:var(--font-instrument);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.ant-statistic-content{font-family:var(--font-instrument);font-variant-numeric:tabular-nums}.dashboard-visual-editor{min-height:0}.dashboard-editor-toolbar{z-index:2;background:var(--page-bg);padding-block:4px;position:sticky;top:0}.dashboard-editor-grid{grid-template-columns:minmax(240px,280px) minmax(0,1fr) minmax(280px,340px);gap:12px;min-height:0;display:grid}.dashboard-editor-pane,.dashboard-editor-canvas{border:1px solid #0000001a;border-radius:6px;min-width:0;padding:12px;overflow:auto}.dark .dashboard-editor-pane,.dark .dashboard-editor-canvas{border-color:#ffffff1a}.ant-btn.editor-btn-start{text-align:left;justify-content:flex-start}.ant-btn.editor-widget-btn{text-align:left;white-space:normal;justify-content:flex-start;height:auto;padding:8px 12px}:where(a,button,[role=button],.ant-btn):focus-visible{outline:2px solid var(--brand-primary);outline-offset:2px;border-radius:4px}.brand-rail{border-inline-end:1px solid #0000000f}.dark .brand-rail{border-inline-end:1px solid #ffffff14}.card-elevated.ant-card{background:#fff;border:none;border-radius:18px;transition:box-shadow .22s,transform .22s;box-shadow:0 1px 2px #0000000a,0 4px 16px #0000000f}.card-elevated.ant-card:hover{transform:translateY(-1px);box-shadow:0 2px 4px #0000000f,0 8px 24px #0000001a}.card-elevated.ant-card .ant-card-head{border-bottom:none;min-height:0;padding:16px 20px 0}.card-elevated.ant-card .ant-card-body{padding:10px 20px 18px}.dark .card-elevated.ant-card{background:#1c1c1e;border:1px solid #ffffff1f;box-shadow:0 1px 2px #00000080,0 4px 16px #0006}.dark .card-elevated.ant-card:hover{box-shadow:0 2px 4px #0000008c,0 8px 24px #00000080}.ant-layout .ant-layout-header.glass-bar,.ant-drawer .ant-drawer-section.glass-bar,.ant-drawer .ant-drawer-content.glass-bar{-webkit-backdrop-filter:blur(14px)saturate(180%);background:#ffffff8c}.dark .ant-layout .ant-layout-header.glass-bar,.dark .ant-drawer .ant-drawer-section.glass-bar,.dark .ant-drawer .ant-drawer-content.glass-bar{background:#1d1d1f8c}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.ant-layout .ant-layout-header.glass-bar,.ant-drawer .ant-drawer-section.glass-bar,.ant-drawer .ant-drawer-content.glass-bar{background:#fff}.dark .ant-layout .ant-layout-header.glass-bar,.dark .ant-drawer .ant-drawer-section.glass-bar,.dark .ant-drawer .ant-drawer-content.glass-bar{background:#1d1d1f}}@keyframes hotspot-dot-breathe{0%{opacity:.7;transform:scale(1)}70%,to{opacity:0;transform:scale(2.8)}}.hotspot-dot-breathe{animation:1.8s cubic-bezier(0,0,.2,1) infinite hotspot-dot-breathe}.hotspot-marker{-webkit-backdrop-filter:blur(3px) brightness(var(--hotspot-brightness,.58)) saturate(1.3);color:#fff;background:#0f172a1f;border:1px solid #ffffff40;transition:translate .25s,scale .25s,background .25s,border-color .25s,box-shadow .25s,-webkit-backdrop-filter .25s,backdrop-filter .25s;box-shadow:0 8px 24px #00000047,inset 0 1px #ffffff40}.hotspot-marker-clickable{cursor:pointer}.hotspot-marker-clickable:hover{-webkit-backdrop-filter:blur(5px) brightness(calc(var(--hotspot-brightness,.58) * .9)) saturate(1.5);background:#0f172a38;border-color:#ffffff73;translate:0 -4px;scale:1.05;box-shadow:0 16px 40px #00000061,inset 0 1px #ffffff59}.hotspot-marker-clickable:active{transition-duration:.1s;translate:0 -1px;scale:.98}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
