.toast-title{font-weight:700}.toast-message{-ms-word-wrap:break-word;word-wrap:break-word}.toast-message a,.toast-message label{color:#fff}.toast-message a:hover{color:#ccc;text-decoration:none}.toast-close-button{color:#fff;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80);float:right;font-size:20px;font-weight:700;line-height:1;opacity:.8;position:relative;right:-.3em;-webkit-text-shadow:0 1px 0 #fff;text-shadow:0 1px 0 #fff;top:-.3em}.toast-close-button:focus,.toast-close-button:hover{color:#000;cursor:pointer;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40);opacity:.4;text-decoration:none}.rtl .toast-close-button{float:left;left:-.3em;right:.3em}button.toast-close-button{-webkit-appearance:none;background:0 0;border:0;cursor:pointer;padding:0}.toast-top-center{right:0;top:0;width:100%}.toast-bottom-center{bottom:0;right:0;width:100%}.toast-top-full-width{right:0;top:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{left:12px;top:12px}.toast-top-right{right:12px;top:12px}.toast-bottom-right{bottom:12px;right:12px}.toast-bottom-left{bottom:12px;left:12px}#toast-container{pointer-events:none;position:fixed;z-index:999999}#toast-container *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#toast-container>div{background-position:15px;background-repeat:no-repeat;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 12px #999;-webkit-box-shadow:0 0 12px #999;box-shadow:0 0 12px #999;color:#fff;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80);margin:0 0 6px;opacity:.8;overflow:hidden;padding:15px 15px 15px 50px;pointer-events:auto;position:relative;width:300px}#toast-container>div.rtl{background-position:right 15px center;direction:rtl;padding:15px 50px 15px 15px}#toast-container>div:hover{-moz-box-shadow:0 0 12px #000;-webkit-box-shadow:0 0 12px #000;box-shadow:0 0 12px #000;cursor:pointer;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);filter:alpha(opacity=100);opacity:1}#toast-container>.toast-info{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=)!important}#toast-container>.toast-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=)!important}#toast-container>.toast-success{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==)!important}#toast-container>.toast-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=)!important}#toast-container.toast-bottom-center>div,#toast-container.toast-top-center>div{margin-left:auto;margin-right:auto;width:300px}#toast-container.toast-bottom-full-width>div,#toast-container.toast-top-full-width>div{margin-left:auto;margin-right:auto;width:96%}.toast{background-color:#030303}.toast-success{background-color:#51a351}.toast-error{background-color:#bd362f}.toast-info{background-color:#2f96b4}.toast-warning{background-color:#f89406}.toast-progress{background-color:#000;bottom:0;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40);height:4px;left:0;opacity:.4;position:absolute}@media (max-width:240px){#toast-container>div{padding:8px 8px 8px 50px;width:11em}#toast-container>div.rtl{padding:8px 50px 8px 8px}#toast-container .toast-close-button{right:-.2em;top:-.2em}#toast-container .rtl .toast-close-button{left:-.2em;right:.2em}}@media (min-width:241px)and (max-width:480px){#toast-container>div{padding:8px 8px 8px 50px;width:18em}#toast-container>div.rtl{padding:8px 50px 8px 8px}#toast-container .toast-close-button{right:-.2em;top:-.2em}#toast-container .rtl .toast-close-button{left:-.2em;right:.2em}}@media (min-width:481px)and (max-width:768px){#toast-container>div{padding:15px 15px 15px 50px;width:25em}#toast-container>div.rtl{padding:15px 50px 15px 15px}}.react-select-solid.react-select-styled .react-select__control{background-color:var(--bs-gray-100);border-color:var(--bs-gray-100);color:var(--bs-gray-700)}.react-select-solid.react-select-styled .react-select__control--is-disabled{background-color:var(--bs-gray-200);border-color:var(--bs-gray-300)}.react-select-solid.react-select-styled .react-select__control--is-disabled .react-select__placeholder{color:var(--bs-gray-500)}.react-select-transparent.react-select-styled .react-select__control{background-color:transparent;border-color:transparent;color:var(--bs-gray-800)}.react-select-transparent.react-select-styled .react-select__control--is-disabled{background-color:transparent!important;border-color:transparent!important}.react-select-transparent.react-select-styled .react-select__control--is-disabled .react-select__placeholder{color:var(--bs-gray-500)}.react-select-transparent.react-select-styled .react-select__placeholder{color:var(--bs-gray-800)}.react-select-sm.react-select-styled .react-select__control{border-radius:.425rem;font-size:.95rem}.react-select-sm.react-select-styled .react-select__value-container{padding-bottom:.55rem;padding-left:.75rem;padding-top:.55rem}.react-select-lg.react-select-styled .react-select__control{border-radius:.625rem;font-size:1.15rem}.react-select-lg.react-select-styled .react-select__value-container{padding-bottom:.825rem;padding-left:1.5rem;padding-top:.825rem}.react-select-styled .react-select__control{--bs-form-select-bg-img:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%2378829d' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3E%3C/svg%3E");appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon,none);background-position:right 1rem center;background-repeat:no-repeat;background-size:16px 12px;border-color:var(--bs-gray-400);border:1px solid var(--bs-gray-300);border-radius:.475rem;box-shadow:none;color:var(--bs-gray-700);font-family:inherit;font-size:1.1rem;font-weight:500;line-height:1.5;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}.react-select-styled .react-select__control--is-disabled{background-color:var(--bs-gray-200);border-color:var(--bs-gray-300)}.react-select-styled .react-select__control--is-disabled .react-select__placeholder{color:var(--bs-gray-500)}.react-select-styled .react-select__control--is-focused{background-color:var(--bs-gray-200)}.react-select-styled .react-select__single-value{color:var(--bs-input-color);margin-left:0}.react-select-styled .react-select__placeholder{color:var(--bs-gray-500)}.react-select-styled .react-select__indicator-separator{display:none}.react-select-styled .react-select__indicator{cursor:pointer;left:-26px;position:relative}.react-select-styled .react-select__dropdown-indicator{display:none}.react-select-styled .react-select__value-container{cursor:pointer;padding:.775rem 3rem .775rem 1rem}.react-select-styled .react-select__input-container{margin:0;padding:0}.react-select-styled .react-select__input-container:after{content:attr(data-value) ""}.react-select-styled .react-select__menu{background-color:var(--bs-dropdown-bg);border:0;border-radius:.475rem;box-shadow:var(--bs-dropdown-box-shadow);padding:1rem 0}.react-select-styled .react-select__option{color:var(--bs-gray-700);cursor:pointer;margin:0;padding:.75rem 1.25rem;transition:color .2s ease}.react-select-styled .react-select__option--is-selected{background-color:var(--bs-component-hover-bg);color:var(--bs-component-hover-color);position:relative;transition:color .2s ease}.react-select-styled .react-select__option--is-selected:after{background-color:var(--bs-component-hover-color);content:"";display:block;height:.75rem;-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 11'%3E%3Cpath fill='var(--bs-component-hover-color)' d='M4.896 6.498 2.795 4.265A1.33 1.33 0 0 0 .857 6.088l3.893 4.138a1 1 0 0 0 1.457 0l6.936-7.373a1.33 1.33 0 0 0-1.938-1.823L6.061 6.498a.8.8 0 0 1-1.165 0'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 11'%3E%3Cpath fill='var(--bs-component-hover-color)' d='M4.896 6.498 2.795 4.265A1.33 1.33 0 0 0 .857 6.088l3.893 4.138a1 1 0 0 0 1.457 0l6.936-7.373a1.33 1.33 0 0 0-1.938-1.823L6.061 6.498a.8.8 0 0 1-1.165 0'/%3E%3C/svg%3E");-webkit-mask-position:center;mask-position:center;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;position:absolute;right:1.25rem;top:50%;transform:translateY(-50%);width:.75rem}.react-select-styled .react-select__option--is-focused:not(.react-select-styled .react-select__option--is-selected){background-color:var(--bs-component-hover-bg);color:var(--bs-component-hover-color);position:relative;transition:color .2s ease}.react-select-styled .react-select__multi-value{background-color:var(--bs-gray-300);border-radius:.475rem}.react-select-styled .react-select__multi-value__label{color:var(--bs-gray-700)}.block-palette{background:#1e293b;border-right:1px solid #334155;flex-shrink:0;height:100%;overflow-y:auto;padding:20px;width:300px}.block-palette .palette-title{align-items:center;color:#f1f5f9;display:flex;font-size:16px;font-weight:600;gap:8px;margin-bottom:24px}.block-palette .palette-tabs{border:none;border-radius:0;display:flex;gap:4px;margin-bottom:20px}.block-palette .palette-tabs .tab-button{align-items:center;background:#0f172a;border:1px solid #334155;border-radius:8px;color:#758cac;cursor:pointer;display:flex;flex:1;font-size:12px;font-weight:500;gap:6px;justify-content:center;padding:12px 16px;transition:all .2s ease}.block-palette .palette-tabs .tab-button i{color:#465975;transition:color .2s ease}.block-palette .palette-tabs .tab-button:hover:not(:disabled){background:#16213d;border-color:#465975;color:#f1f5f9}.block-palette .palette-tabs .tab-button:hover:not(:disabled) i{color:#f1f5f9}.block-palette .palette-tabs .tab-button.active{background:#1e293b;border-color:#3b82f6;box-shadow:0 2px 4px rgba(0,0,0,.1);color:#f1f5f9}.block-palette .palette-tabs .tab-button.active i{color:#f1f5f9}.block-palette .palette-tabs .tab-button:disabled{cursor:not-allowed;opacity:.5}.block-palette .palette-tabs .tab-button i{font-size:11px}.block-palette .blocks-container{display:flex;flex-direction:column;gap:12px}.block-palette .section-title{align-items:center;border-top:1px solid #334155;color:rgba(241,245,249,.6);display:flex;font-size:11px;font-weight:600;gap:6px;letter-spacing:.5px;margin-top:8px;padding:8px 4px 4px;text-transform:uppercase}.block-palette .section-title:first-child{border-top:none;margin-top:0;padding-top:0}.block-palette .section-title i{font-size:12px;opacity:.7}.block-palette .block-item{align-items:center;background:#0f172a;border:1px solid #334155;border-radius:8px;cursor:grab;display:flex;gap:12px;min-height:48px;padding:12px;position:relative;transition:all .2s ease}.block-palette .block-item:hover{background:#16213d;box-shadow:0 4px 8px rgba(0,0,0,.2);transform:translateY(-1px)}.block-palette .block-item.condition{border-left:3px solid #6366f1}.block-palette .block-item.condition .block-preview-icon{color:#6366f1;font-size:28px}.block-palette .block-item.condition .block-label{color:#6366f1}.block-palette .block-item.action{border-left:3px solid #14b8a6}.block-palette .block-item.action .block-preview-icon{color:#14b8a6;font-size:28px}.block-palette .block-item.action .block-label{color:#14b8a6}.block-palette .block-item.and{border-left:3px solid #8b5cf6}.block-palette .block-item.and .block-preview-icon{color:#8b5cf6;font-size:28px}.block-palette .block-item.and .block-label{color:#8b5cf6}.block-palette .block-item.or{border-left:3px solid #f59e0b}.block-palette .block-item.or .block-preview-icon{color:#f59e0b;font-size:28px}.block-palette .block-item.or .block-label{color:#f59e0b}.block-palette .block-item.then{border-left:3px solid #22c55e}.block-palette .block-item.then .block-preview-icon{color:#22c55e;font-size:28px}.block-palette .block-item.then .block-label{color:#22c55e}.block-palette .block-item.else{border-left:3px solid #ef4444}.block-palette .block-item.else .block-preview-icon{color:#ef4444;font-size:28px}.block-palette .block-item.else .block-label{color:#ef4444}.block-palette .block-item.parameter{border-left:3px solid #06b6d4}.block-palette .block-item.parameter .block-preview-icon{color:#06b6d4;font-size:28px}.block-palette .block-item.parameter .block-label{color:#06b6d4}.block-palette .block-item.alert{border-left:3px solid #ef4444}.block-palette .block-item.alert .block-preview-icon{color:#ef4444;font-size:28px}.block-palette .block-item.alert .block-label{color:#ef4444}.block-palette .block-item.timer{border-left:3px solid #a855f7}.block-palette .block-item.timer .block-preview-icon{color:#a855f7;font-size:28px}.block-palette .block-item.timer .block-label{color:#a855f7}.block-palette .block-item.sensor-input{border-left:3px solid #10b981}.block-palette .block-item.sensor-input .block-preview-icon{color:#10b981;font-size:28px}.block-palette .block-item.sensor-input .block-label{color:#10b981}.block-palette .block-item.sensor-output{border-left:3px solid #f97316}.block-palette .block-item.sensor-output .block-preview-icon{color:#f97316;font-size:28px}.block-palette .block-item.sensor-output .block-label{color:#f97316}.block-palette .block-item.sensor-digital-input{border-left:3px solid #1b84ff}.block-palette .block-item.sensor-digital-input .block-preview-icon{color:#1b84ff;font-size:28px}.block-palette .block-item.sensor-digital-input .block-label{color:#1b84ff}.block-palette .block-item.sensor-analog{border-left:3px solid #7239ea}.block-palette .block-item.sensor-analog .block-preview-icon{color:#7239ea;font-size:28px}.block-palette .block-item.sensor-analog .block-label{color:#7239ea}.block-palette .block-item.sensor-pt1000{border-left:3px solid #17c653}.block-palette .block-item.sensor-pt1000 .block-preview-icon{color:#17c653;font-size:28px}.block-palette .block-item.sensor-pt1000 .block-label{color:#17c653}.block-palette .block-item.sensor-digital-output{border-left:3px solid #f6c000}.block-palette .block-item.sensor-digital-output .block-preview-icon{color:#f6c000;font-size:28px}.block-palette .block-item.sensor-digital-output .block-label{color:#f6c000}.block-palette .block-item.sensor-analog-output{border-left:3px solid #f8285a}.block-palette .block-item.sensor-analog-output .block-preview-icon{color:#f8285a;font-size:28px}.block-palette .block-item.sensor-analog-output .block-label{color:#f8285a}.block-palette .block-item.sensor-analog,.block-palette .block-item.sensor-analog-output,.block-palette .block-item.sensor-digital-input,.block-palette .block-item.sensor-digital-output,.block-palette .block-item.sensor-input,.block-palette .block-item.sensor-output,.block-palette .block-item.sensor-pt1000{min-height:60px;padding:14px 12px}.block-palette .block-item.sensor-analog .block-label,.block-palette .block-item.sensor-analog-output .block-label,.block-palette .block-item.sensor-digital-input .block-label,.block-palette .block-item.sensor-digital-output .block-label,.block-palette .block-item.sensor-input .block-label,.block-palette .block-item.sensor-output .block-label,.block-palette .block-item.sensor-pt1000 .block-label{color:#f1f5f9}.block-palette .block-item.sensor-block-item .sensor-type-badge{border-radius:3px;font-size:8px;font-weight:700;letter-spacing:.5px;padding:2px 6px;position:absolute;right:4px;text-transform:uppercase;top:4px;z-index:2}.block-palette .block-item.sensor-block-item .sensor-type-badge.input-badge{background:rgba(16,185,129,.9);border:1px solid #10b981;color:#fff}.block-palette .block-item.sensor-block-item .sensor-type-badge.output-badge{background:rgba(245,158,11,.9);border:1px solid #f59e0b;color:#fff}.block-palette .block-preview{align-items:center;border-radius:4px;display:flex;flex-shrink:0;font-size:8px;font-weight:600;height:24px;justify-content:center;width:32px}.block-palette .block-preview.diamond{clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.block-palette .block-preview.circle{border-radius:50%;height:24px;width:24px}.block-palette .block-preview.hexagon{clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%)}.block-palette .block-info{flex:1;min-width:0}.block-palette .block-info .block-label{align-items:center;color:#f1f5f9;display:flex;font-size:13px;font-weight:600;gap:4px;line-height:1.2;margin-bottom:2px}.block-palette .block-info .block-label .sensor-position-badge{align-items:center;background:hsla(0,0%,100%,.15);border:1px solid hsla(0,0%,100%,.2);border-radius:4px;color:#f1f5f9;display:inline-flex;font-size:9px;font-weight:700;justify-content:center;letter-spacing:.5px;min-width:32px;padding:2px 6px;text-transform:uppercase}.block-palette .block-info .block-description{color:#597295;display:block;font-size:11px;line-height:1.3;margin-bottom:4px}.block-palette .block-info .sensor-current-value{background:rgba(96,165,250,.1);border:1px solid rgba(96,165,250,.2);border-radius:3px;color:#60a5fa;display:inline-block;font-size:10px;font-weight:600;line-height:1.2;min-height:14px;padding:2px 4px;text-align:center}.block-palette .block-info .sensor-current-value.value-updated{animation:valueUpdate .5s ease-in-out;background:rgba(34,197,94,.2);border-color:rgba(34,197,94,.4);color:#22c55e}.block-palette .block-info .sensor-current-value.value-on{background:rgba(16,185,129,.1)!important;border-color:rgba(16,185,129,.2)!important;color:#10b981!important}.block-palette .block-info .sensor-current-value.value-off{background:rgba(239,68,68,.1)!important;border-color:rgba(239,68,68,.2)!important;color:#ef4444!important}.block-palette .block-info .sensor-specific-type{background:rgba(27,132,255,.1);border:1px solid rgba(27,132,255,.2);border-radius:3px;color:#1b84ff;display:inline-block;font-size:9px;font-weight:700;letter-spacing:.5px;line-height:1.2;min-height:12px;padding:2px 4px;text-align:center;text-transform:uppercase}.block-palette .block-info .sensor-specific-type.pt1000-type{background:rgba(23,198,83,.1);border:1px solid rgba(23,198,83,.2);color:#17c653}.block-palette .block-info .sensor-specific-type.analog-type{background:rgba(114,57,234,.1);border:1px solid rgba(114,57,234,.2);color:#7239ea}.block-palette .block-info .sensor-details{align-items:center;display:flex;gap:4px;margin-top:2px}.block-palette .real-time-indicator{align-items:center;animation:pulse 2s infinite;background:rgba(34,197,94,.9);border-radius:50%;display:flex;font-size:8px;height:16px;justify-content:center;left:8px;position:absolute;top:8px;width:16px;z-index:10}.block-palette .real-time-indicator i{color:#fff}.block-palette.real-time-updated{border-color:rgba(34,197,94,.4);box-shadow:0 0 8px rgba(34,197,94,.2)}.block-palette.real-time-updated:hover{box-shadow:0 0 12px rgba(34,197,94,.3)}.block-palette .block-description-tooltip{background:#0f172a;border:1px solid #334155;border-radius:6px;box-shadow:0 4px 12px rgba(0,0,0,.3);color:#f1f5f9;font-size:11px;left:100%;margin-left:8px;opacity:0;padding:8px 12px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%);transition:all .2s ease;visibility:hidden;white-space:nowrap;z-index:9999}.block-palette .block-description-tooltip:before{border:4px solid transparent;border-right-color:#334155;content:"";position:absolute;right:100%;top:50%;transform:translateY(-50%)}.block-palette .drag-indicator{color:#334155;font-size:12px}.block-palette .palette-help{background:#0f172a;border:1px solid #334155;border-radius:8px;color:#597295;font-size:12px;margin-top:24px;padding:16px}.react-flow{background:#0f172a!important}.custom-node{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;max-width:220px;min-width:180px}.custom-node .node-content{background:#1e293b;border:1px solid #334155;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.15);padding:0;position:relative;transition:all .2s ease}.custom-node .node-content:hover{box-shadow:0 4px 16px rgba(0,0,0,.2);transform:translateY(-1px)}.custom-node .node-content:hover .node-header-actions{opacity:1}.custom-node .node-header{align-items:center;display:flex;justify-content:space-between;padding:8px 12px}.custom-node .node-header .node-header-left{align-items:center;display:flex;flex:1;gap:8px}.custom-node .node-header .node-icon{align-items:center;border-radius:4px;display:flex;flex-shrink:0;font-size:14px;height:20px;justify-content:center;width:20px}.custom-node .node-header .node-icon i{color:#fff!important}.custom-node .node-header .node-type-info{flex:1;min-width:0}.custom-node .node-header .node-type-info .node-type{color:hsla(0,0%,100%,.5);font-size:9px;font-weight:600;letter-spacing:.5px;margin-bottom:1px;text-transform:uppercase}.custom-node .node-header .node-type-info .node-title{color:#f1f5f9;font-size:12px;font-weight:600;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.custom-node .node-header .node-status-indicator{border-radius:50%;flex-shrink:0;height:8px;margin-right:4px;width:8px}.custom-node .node-header .node-status-indicator.status-active{background:#10b981}.custom-node .node-header .node-status-indicator.status-configured{background:#3b82f6}.custom-node .node-header .node-status-indicator.status-error{background:#ef4444}.custom-node .node-header .node-header-actions{display:flex;gap:2px;opacity:0;position:absolute;right:4px;top:4px;transition:opacity .2s ease;z-index:10}.custom-node .node-body{min-height:32px;padding:8px 12px 12px}.custom-node .node-body .node-details{width:100%}.custom-node .node-body .node-main-config{margin-bottom:6px}.custom-node .node-body .node-main-config .config-title,.custom-node .node-body .node-meta-info{display:none}.custom-node .node-body .real-time-value{background:rgba(96,165,250,.15);border-radius:4px;color:#60a5fa;font-size:9px;font-weight:600;padding:2px 4px;position:absolute;right:4px;top:4px}.custom-node .node-body .real-time-value.value-active{background:rgba(16,185,129,.15);color:#10b981}.custom-node .action-formula,.custom-node .condition-formula{align-items:center;display:flex;flex-wrap:wrap;font-size:11px;gap:6px;justify-content:center}.custom-node .action-formula .io-badge,.custom-node .action-formula .io-ref,.custom-node .condition-formula .io-badge,.custom-node .condition-formula .io-ref{background:rgba(59,130,246,.8);border-radius:4px;color:#fff;font-size:10px;font-weight:500;padding:2px 6px}.custom-node .action-formula .current-value-badge,.custom-node .condition-formula .current-value-badge{background:rgba(99,102,241,.9);border-radius:4px;color:#fff;font-size:11px;font-weight:600;min-width:40px;padding:3px 8px;text-align:center}.custom-node .action-formula .operator,.custom-node .action-formula .operator-symbol,.custom-node .condition-formula .operator,.custom-node .condition-formula .operator-symbol{color:#f59e0b;font-size:11px;font-weight:600;padding:2px 4px}.custom-node .action-formula .arrow,.custom-node .condition-formula .arrow{color:#10b981;font-size:12px}.custom-node .action-formula .value,.custom-node .action-formula .value-badge,.custom-node .condition-formula .value,.custom-node .condition-formula .value-badge{background:rgba(16,185,129,.8);border-radius:4px;color:#fff;font-size:10px;font-weight:500;padding:2px 6px}.custom-node .action-formula .pulse-indicator,.custom-node .condition-formula .pulse-indicator{align-items:center;animation:pulseBlink 1.5s ease-in-out infinite;background:linear-gradient(135deg,rgba(249,115,22,.15),rgba(251,146,60,.15));border:1px solid rgba(251,146,60,.3);border-radius:4px;color:#fb923c;display:inline-flex;font-size:9px;font-weight:600;gap:3px;padding:2px 6px;white-space:nowrap}.custom-node .action-formula .pulse-indicator i,.custom-node .condition-formula .pulse-indicator i{font-size:8px}.custom-node .action-formula .pulse-indicator span,.custom-node .condition-formula .pulse-indicator span{font-variant-numeric:tabular-nums}.custom-node .action-formula .btn-pulse,.custom-node .condition-formula .btn-pulse{background:linear-gradient(135deg,rgba(249,115,22,.2),rgba(251,146,60,.2))!important;border:1px solid rgba(251,146,60,.4)!important;cursor:pointer;transition:all .2s ease}.custom-node .action-formula .btn-pulse:hover,.custom-node .condition-formula .btn-pulse:hover{background:linear-gradient(135deg,rgba(249,115,22,.35),rgba(251,146,60,.35))!important;border-color:rgba(251,146,60,.6)!important;box-shadow:0 0 8px rgba(251,146,60,.3);color:#fbbf24!important}.custom-node .action-formula .btn-pulse:active,.custom-node .condition-formula .btn-pulse:active{transform:scale(.95)}@keyframes pulseBlink{0%,to{opacity:1}50%{opacity:.7}}.custom-node .action-delay-info{align-items:center;background:rgba(139,92,246,.1);border:1px solid rgba(139,92,246,.3);border-radius:4px;color:#a78bfa;display:flex;font-size:10px;font-weight:500;gap:4px;justify-content:center;margin-top:6px;padding:4px 8px}.custom-node .action-delay-info i{font-size:10px}.custom-node.action-node.has-pulse .node-content{border-left-color:#fb923c}.custom-node.action-node.has-pulse .node-header .node-icon{box-shadow:inset 0 0 8px rgba(251,146,60,.2)}.custom-node .action-empty,.custom-node .condition-unconfigured{color:hsla(0,0%,100%,.5);font-size:10px;padding:8px;text-align:center}.custom-node .action-empty .config-icon,.custom-node .condition-unconfigured .config-icon{font-size:12px;margin-bottom:2px;opacity:.6}.custom-node .action-empty .config-text .main-text,.custom-node .condition-unconfigured .config-text .main-text{display:block;font-size:10px;font-weight:500}.custom-node .action-empty .config-text .sub-text,.custom-node .condition-unconfigured .config-text .sub-text{display:none}.custom-node .action-empty.clickable,.custom-node .condition-unconfigured.clickable{background:rgba(99,102,241,.05);border:1px dashed rgba(99,102,241,.3);border-radius:6px;cursor:pointer;margin:4px;padding:10px;transition:all .2s ease}.custom-node .action-empty.clickable:hover,.custom-node .condition-unconfigured.clickable:hover{background:rgba(99,102,241,.1);border-color:rgba(99,102,241,.5);color:hsla(0,0%,100%,.8)}.custom-node .action-empty.clickable .config-icon,.custom-node .condition-unconfigured.clickable .config-icon{font-size:16px;margin-bottom:4px;opacity:.8}.custom-node .action-empty.clickable .config-text .main-text,.custom-node .condition-unconfigured.clickable .config-text .main-text{font-size:11px}.custom-node .action-empty.clickable .current-value-display,.custom-node .condition-unconfigured.clickable .current-value-display{align-items:center;display:flex;gap:8px;justify-content:center;margin-bottom:8px}.custom-node .action-empty.clickable .current-value-display .value-label,.custom-node .condition-unconfigured.clickable .current-value-display .value-label{color:hsla(0,0%,100%,.6);font-size:10px}.custom-node .action-empty.clickable .current-value-display .value-number,.custom-node .condition-unconfigured.clickable .current-value-display .value-number{background:rgba(99,102,241,.15);border-radius:4px;color:#6366f1;font-size:14px;font-weight:700;padding:2px 10px}.custom-node .action-empty.clickable .config-hint,.custom-node .condition-unconfigured.clickable .config-hint{align-items:center;color:hsla(0,0%,100%,.4);display:flex;font-size:9px;gap:6px;justify-content:center}.custom-node .action-empty.clickable .config-hint i,.custom-node .condition-unconfigured.clickable .config-hint i{font-size:10px}.custom-node .action-empty.clickable{background:rgba(20,184,166,.05);border-color:rgba(20,184,166,.3)}.custom-node .action-empty.clickable:hover{background:rgba(20,184,166,.1);border-color:rgba(20,184,166,.5)}.custom-node .action-empty.clickable .config-icon{color:#14b8a6}.custom-node .parameter-info{padding:4px 8px;text-align:center}.custom-node .parameter-info .param-name{color:rgba(8,145,178,.8);font-size:9px;font-weight:500;margin-bottom:2px}.custom-node .parameter-info .param-value{color:#0891b2;font-size:12px;font-weight:600}.custom-node .alert-message{align-items:center;color:#f1f5f9;display:flex;font-size:10px;gap:4px;justify-content:center;padding:4px 8px}.custom-node .alert-message i{color:#dc2626;font-size:10px}.custom-node .alert-message .alert-text{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.custom-node .sensor-info{padding:4px 8px}.custom-node .sensor-info .sensor-position{color:hsla(0,0%,100%,.6);font-size:9px;margin-bottom:2px}.custom-node .sensor-info .sensor-value{font-size:11px;margin-bottom:2px}.custom-node .sensor-info .sensor-status{font-size:8px;gap:3px}.custom-node .sensor-info .sensor-status .status-indicator{font-size:6px}.custom-node .sensor-info .sensor-status .status-text{color:hsla(0,0%,100%,.6)}.custom-node .btn-action{align-items:center;border:none;border-radius:50%;cursor:pointer;display:flex;font-size:7px;height:14px;justify-content:center;transition:all .2s ease;width:14px}.custom-node .btn-action i{color:#fff!important;font-size:7px}.custom-node .btn-action.btn-edit{background:rgba(59,130,246,.8)}.custom-node .btn-action.btn-edit:hover{background:#3b82f6}.custom-node .btn-action.btn-delete{background:rgba(239,68,68,.8)}.custom-node .btn-action.btn-delete:hover{background:#ef4444}.custom-node.condition-node .node-content{border-left:4px solid #6366f1}.custom-node.condition-node .node-header .node-icon{background:#7a7df3;border:1px solid #3438ed;color:#fff!important}.custom-node.action-node .node-content{border-left:4px solid #14b8a6}.custom-node.action-node .node-header .node-icon{background:#17cfbb;border:1px solid #0f8a7d;color:#fff!important}.custom-node.action-node.sensor-digital-output-node .node-content{border-left:4px solid #f6c000}.custom-node.action-node.sensor-digital-output-node .node-header .node-icon{background:#ffcb11;border:1px solid #c39800;color:#fff!important}.custom-node.action-node.sensor-analog-output-node .node-content{border-left:4px solid #f8285a}.custom-node.action-node.sensor-analog-output-node .node-header .node-icon{background:#f9416d;border:1px solid #e6073d;color:#fff!important}.custom-node.and-node .node-content{border-left:4px solid #8b5cf6}.custom-node.and-node .node-header .node-icon{background:#9c74f7;border:1px solid #692cf3;color:#fff!important}.custom-node.then-node .node-content{border-left:4px solid #f59e0b}.custom-node.then-node .node-header .node-icon{background:#f6a823;border:1px solid #c57f08}.custom-node.then-node .node-content{border-left:4px solid #22c55e}.custom-node.then-node .node-header .node-icon{background:#27da69;border:1px solid #1a9a49;color:#fff!important}.custom-node.else-node .node-content{border-left:4px solid #ef4444}.custom-node.else-node .node-header .node-icon{background:#f15b5b;border:1px solid #eb1515;color:#fff!important}.custom-node.parameter-node .node-content{border-left:4px solid #06b6d4}.custom-node.parameter-node .node-header .node-icon{background:#07cbed;border:1px solid #058ba2;color:#fff!important}.custom-node.alert-node .node-content{border-left:4px solid #ef4444}.custom-node.alert-node .node-header .node-icon{background:#f15b5b;border:1px solid #eb1515;color:#fff!important}.custom-node.timer-node .node-content{border-left:4px solid #a855f7}.custom-node.timer-node .node-header .node-icon{background:#b46df8;border:1px solid #8f24f5;color:#fff!important}.custom-node.timer-node .timer-info{padding:4px 0;text-align:center}.custom-node.timer-node .timer-info .timer-duration{align-items:center;color:#a78bfa;display:flex;font-size:12px;font-weight:600;gap:4px;justify-content:center}.custom-node.timer-node .timer-info .timer-duration .duration-text{color:#f1f5f9}.custom-node.timer-node .timer-empty{color:hsla(0,0%,100%,.5);font-size:10px;padding:8px;text-align:center}.custom-node.timer-node .timer-empty .config-icon{font-size:12px;margin-bottom:4px}.custom-node.timer-node .timer-empty .config-text .main-text{display:block;font-size:10px}.custom-node.sensor-input-node .node-content{border-left:4px solid #10b981}.custom-node.sensor-input-node .node-header .node-icon{background:#12d091;border:1px solid #0c8a60;color:#fff!important}.custom-node.sensor-output-node .node-content{border-left:4px solid #f97316}.custom-node.sensor-output-node .node-header .node-icon{background:#fa822f;border:1px solid #d65b06;color:#fff!important}.custom-node.sensor-digital-input-node .node-content{border-left:4px solid #1b84ff}.custom-node.sensor-digital-input-node .node-header .node-icon{background:#3592ff;border:1px solid #006ae7;color:#fff!important}.custom-node.sensor-analog-node .node-content{border-left:4px solid #7239ea}.custom-node.sensor-analog-node .node-header .node-icon{background:#8250ec;border:1px solid #5517d9;color:#fff!important}.custom-node.sensor-pt1000-node .node-content{border-left:4px solid #17c653}.custom-node.sensor-pt1000-node .node-header .node-icon{background:#1add5d;border:1px solid #129840;color:#fff!important}.custom-node.sensor-digital-output-node .node-content{border-left:4px solid #f6c000}.custom-node.sensor-digital-output-node .node-header .node-icon{background:#ffcb11;border:1px solid #c39800;color:#fff!important}.custom-node.sensor-analog-output-node .node-content{border-left:4px solid #f8285a}.custom-node.sensor-analog-output-node .node-header .node-icon{background:#f9416d;border:1px solid #e6073d;color:#fff!important}.custom-node.selected .node-content{border-color:#3b82f6;box-shadow:0 0 0 2px rgba(59,130,246,.3),0 8px 24px rgba(0,0,0,.2)}.custom-node.unconfigured .node-content{animation:pulse-warning 2s ease-in-out infinite;border-color:#f59e0b;box-shadow:0 0 0 2px rgba(245,158,11,.3),0 4px 16px rgba(245,158,11,.2)}.custom-node.unconfigured .node-content .node-icon{animation:shake .5s ease-in-out;background:#f59e0b!important}@keyframes pulse-warning{0%,to{box-shadow:0 0 0 2px rgba(245,158,11,.3),0 4px 16px rgba(245,158,11,.2)}50%{box-shadow:0 0 0 3px rgba(245,158,11,.5),0 6px 20px rgba(245,158,11,.3)}}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-2px)}75%{transform:translateX(2px)}}.custom-node .sensor-info{text-align:center}.custom-node .sensor-info .sensor-position{color:#758cac;font-size:12px;margin-bottom:6px}.custom-node .sensor-info .sensor-value{background:rgba(96,165,250,.1);border:1px solid rgba(96,165,250,.2);border-radius:4px;color:#60a5fa;font-size:14px;font-weight:600;margin-bottom:6px;padding:4px 8px}.custom-node .sensor-info .sensor-status{align-items:center;display:flex;font-size:11px;gap:6px;justify-content:center}.custom-node .sensor-info .sensor-status .status-indicator{font-size:10px}.custom-node .sensor-info .sensor-status .status-indicator.active{color:#10b981}.custom-node .sensor-info .sensor-status .status-indicator.inactive{color:hsla(0,0%,100%,.4)}.custom-node .sensor-info .sensor-status .status-text{color:#758cac}.node-handle{background:#fff!important;border:2px solid #1e293b!important;height:12px!important;transition:border-color .2s ease,box-shadow .2s ease!important;width:12px!important}.node-handle:hover{border-color:#597295!important;box-shadow:0 0 8px rgba(59,130,246,.4)!important}.node-handle.handle-input{background:#06b6d4!important;border-color:#0891b2!important}.node-handle.handle-output{background:#10b981!important;border-color:#059669!important}.node-handle.handle-then{background:#22c55e!important;border-color:#16a34a!important}.node-handle.handle-else{background:#ef4444!important;border-color:#dc2626!important}.node-handle .handle-label{background:#1e293b;border:1px solid #334155;border-radius:4px;color:#f1f5f9;font-size:9px;font-weight:600;opacity:0;padding:2px 6px;pointer-events:none;position:absolute;transition:opacity .2s ease;white-space:nowrap}.node-handle:hover .handle-label{opacity:1}.node-handle[data-handlepos=top] .handle-label{bottom:100%;left:50%;transform:translateX(-50%) translateY(-4px)}.node-handle[data-handlepos=bottom] .handle-label{left:50%;top:100%;transform:translateX(-50%) translateY(4px)}.node-handle[data-handlepos=left] .handle-label{right:100%;top:50%;transform:translateX(-4px) translateY(-50%)}.node-handle[data-handlepos=right] .handle-label{left:100%;top:50%;transform:translateX(4px) translateY(-50%)}@keyframes pulse-glow{0%,to{box-shadow:0 4px 12px rgba(0,0,0,.3)}50%{box-shadow:0 4px 20px rgba(59,130,246,.4),0 0 20px rgba(59,130,246,.2)}}@keyframes pulse-value{0%,to{opacity:1;transform:scale(1)}50%{opacity:.9;transform:scale(1.05)}}.scenario-editor{background:#0f172a;display:flex;height:100vh}.scenario-editor .editor-main{display:flex;flex:1;flex-direction:column}.scenario-editor .editor-toolbar{align-items:center;background:#1e293b;border-bottom:1px solid #334155;display:flex;justify-content:space-between;padding:16px 24px}.scenario-editor .editor-toolbar .toolbar-left,.scenario-editor .editor-toolbar .toolbar-right{align-items:center;display:flex;gap:16px}.scenario-editor .editor-toolbar h5{color:#f1f5f9;font-size:18px;font-weight:600;margin:0}.scenario-editor .editor-toolbar .badge{background:#0f172a;border:1px solid #334155;color:#758cac}.scenario-editor .editor-toolbar .btn{border-radius:8px;font-weight:500;transition:all .2s ease}.scenario-editor .editor-toolbar .btn.btn-outline-primary{background:transparent;border-color:#3b82f6;color:#3b82f6}.scenario-editor .editor-toolbar .btn.btn-outline-primary:hover{background:#3b82f6;color:#fff}.scenario-editor .editor-toolbar .btn.btn-outline-primary:hover i{color:#fff}.scenario-editor .editor-toolbar .btn.btn-outline-info{background:transparent;border-color:#06b6d4;color:#06b6d4}.scenario-editor .editor-toolbar .btn.btn-outline-info:hover{background:#06b6d4;color:#fff}.scenario-editor .editor-toolbar .btn.btn-outline-info:hover i{color:#fff}.scenario-editor .editor-toolbar .btn.btn-success{background:#14b8a6;border-color:#14b8a6}.scenario-editor .editor-toolbar .btn.btn-success:hover{background:#0f8a7d}.scenario-editor .editor-toolbar .btn.btn-outline-danger{background:transparent;border-color:#ef4444;color:#ef4444}.scenario-editor .editor-toolbar .btn.btn-outline-danger:hover{background:#ef4444;color:#fff}.scenario-editor .editor-toolbar .btn.btn-outline-danger:hover i{color:#fff}.scenario-editor .editor-toolbar .btn.btn-outline-secondary{background:transparent;border-color:#334155;color:#758cac}.scenario-editor .editor-toolbar .btn.btn-outline-secondary:hover{background:#334155;color:#f1f5f9}.scenario-editor .react-flow-container{background:#0f172a;flex:1}.scenario-modal-backdrop{align-items:center;background:rgba(0,0,0,.75);display:flex;inset:0;justify-content:center;position:fixed;z-index:1050}.scenario-modal{background:#1e293b;border:1px solid #334155;border-radius:12px;box-shadow:0 20px 50px rgba(0,0,0,.3);max-width:500px;width:90%}.scenario-modal__header{align-items:center;border-bottom:1px solid #334155;display:flex;font-weight:600;gap:8px}.scenario-modal__body,.scenario-modal__header{color:#f1f5f9;padding:20px}.scenario-modal__body .form-control{background:#0f172a;border:1px solid #334155;border-radius:8px;color:#f1f5f9}.scenario-modal__body .form-control:focus{background:#0f172a;border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);color:#f1f5f9}.scenario-modal__body .text-muted{color:#758cac!important}.scenario-modal__footer{border-top:1px solid #334155;display:flex;gap:8px;justify-content:flex-end;padding:16px 20px}.scenario-modal__footer .btn{border-radius:8px;font-weight:500}.scenario-modal__footer .btn.btn-secondary{background:#0f172a;border-color:#334155;color:#f1f5f9}.scenario-modal__footer .btn.btn-secondary:hover{background:#334155}.scenario-modal__footer .btn.btn-primary{background:#3b82f6;border-color:#3b82f6}.scenario-modal__footer .btn.btn-primary:hover{background:#2563eb}.scenario-modal__footer .btn.btn-danger{background:#ef4444;border-color:#ef4444}.scenario-modal__footer .btn.btn-danger:hover{background:#eb1515}.editor-modal .modal-content{background:linear-gradient(180deg,#0b1220,#10243b);border:1px solid rgba(59,130,246,.14);color:#f1f5f9}.editor-modal .modal-footer,.editor-modal .modal-header{background:transparent;border:none}.editor-modal .modal-title{color:#e6f0ff}.editor-modal .modal-body{color:rgba(241,245,249,.95)}.editor-modal .btn-primary{background-color:#3b82f6;border-color:#2563eb}.editor-modal .btn-secondary{background-color:hsla(0,0%,100%,.06);border-color:hsla(0,0%,100%,.04);color:#f1f5f9}.editor-modal .form-control,.editor-modal .form-select{background:hsla(0,0%,100%,.03);border:1px solid hsla(0,0%,100%,.04);color:#f1f5f9}.editor-modal .operator-tile{cursor:pointer;transition:all .15s ease}.editor-modal .operator-tile.bg-light{background:hsla(0,0%,100%,.02)!important;color:#f1f5f9!important}.editor-modal .operator-tile.bg-primary{background:#2563eb!important;color:#fff!important}.editor-modal .no-input-warning{background:#3b3225;border:1px solid rgba(255,222,170,.12);color:#ffd580}.drag-preview .preview-node{align-items:center;background:#1e293b;border:1px solid #334155;border-radius:8px;box-shadow:0 8px 20px rgba(0,0,0,.3);color:#f1f5f9;display:flex;flex-direction:column;font-size:12px;font-weight:600;gap:4px;height:60px;justify-content:center;width:100px}.drag-preview .preview-node.condition-preview{border-left:3px solid #6366f1}.drag-preview .preview-node.condition-preview .preview-icon{color:#6366f1}.drag-preview .preview-node.action-preview{border-left:3px solid #14b8a6}.drag-preview .preview-node.action-preview .preview-icon{color:#14b8a6}.drag-preview .preview-node.and-preview{border-left:3px solid #8b5cf6}.drag-preview .preview-node.and-preview .preview-icon{color:#8b5cf6}.drag-preview .preview-node.or-preview{border-left:3px solid #f59e0b}.drag-preview .preview-node.or-preview .preview-icon{color:#f59e0b}.drag-preview .preview-node.then-preview{border-left:3px solid #22c55e}.drag-preview .preview-node.then-preview .preview-icon{color:#22c55e}.drag-preview .preview-node.else-preview{border-left:3px solid #ef4444}.drag-preview .preview-node.else-preview .preview-icon{color:#ef4444}.drag-preview .preview-node.parameter-preview{border-left:3px solid #06b6d4}.drag-preview .preview-node.parameter-preview .preview-icon{color:#06b6d4}.drag-preview .preview-node.alert-preview{border-left:3px solid #ef4444}.drag-preview .preview-node.alert-preview .preview-icon{color:#ef4444}.drag-preview .preview-node.timer-preview{border-left:3px solid #a855f7}.drag-preview .preview-node.timer-preview .preview-icon{color:#a855f7}.drag-preview .preview-node.sensor-input-preview{border-left:3px solid #10b981}.drag-preview .preview-node.sensor-input-preview .preview-icon{color:#10b981}.drag-preview .preview-node.sensor-output-preview{border-left:3px solid #f97316}.drag-preview .preview-node.sensor-output-preview .preview-icon{color:#f97316}.drag-preview .preview-node.sensor-digital-input-preview{border-left:3px solid #1b84ff}.drag-preview .preview-node.sensor-digital-input-preview .preview-icon{color:#1b84ff}.drag-preview .preview-node.sensor-analog-preview{border-left:3px solid #7239ea}.drag-preview .preview-node.sensor-analog-preview .preview-icon{color:#7239ea}.drag-preview .preview-node.sensor-pt1000-preview{border-left:3px solid #17c653}.drag-preview .preview-node.sensor-pt1000-preview .preview-icon{color:#17c653}.drag-preview .preview-node.sensor-digital-output-preview{border-left:3px solid #f6c000}.drag-preview .preview-node.sensor-digital-output-preview .preview-icon{color:#f6c000}.drag-preview .preview-node.sensor-analog-output-preview{border-left:3px solid #f8285a}.drag-preview .preview-node.sensor-analog-output-preview .preview-icon{color:#f8285a}.drag-preview .preview-node .preview-icon{font-size:16px}.drag-preview .preview-node .preview-title{font-size:10px;opacity:.8}.drag-preview .preview-node .preview-badge{font-size:8px;opacity:.6;text-transform:uppercase}.react-flow__controls{background:#1e293b!important;border:1px solid #334155!important;border-radius:8px!important}.react-flow__controls button{background:#0f172a!important;border-bottom:1px solid #334155!important;color:#f1f5f9!important}.react-flow__controls button:hover{background:#334155!important}.react-flow__controls button:last-child{border-bottom:none!important}.react-flow__minimap{background:#1e293b!important;border:1px solid #334155!important;border-radius:8px!important}.react-flow__background{background:#0f172a!important}.react-flow__background .react-flow__background-pattern{opacity:.3!important;stroke:#334155!important}.react-flow__edge.edge-then{stroke:#10b981!important;stroke-width:3px!important}.react-flow__edge.edge-else{stroke:#ef4444!important;stroke-width:3px!important}.custom-edge-label .edge-delete-btn{align-items:center;background:#ef4444;border:none;border-radius:50%;box-shadow:0 2px 8px rgba(0,0,0,.3);color:#fff;cursor:pointer;display:flex;font-size:12px;height:24px;justify-content:center;transition:all .2s ease;width:24px}.custom-edge-label .edge-delete-btn:hover{background:#dc2626;box-shadow:0 4px 12px rgba(239,68,68,.4);transform:scale(1.1)}.custom-edge-label .edge-delete-btn i{color:#fff}.custom-edge-label:hover .edge-delete-btn,.react-flow__edge:hover+.custom-edge-label .edge-delete-btn{opacity:1}.sensor-block-info{background:transparent!important;padding:0!important}.sensor-block-info .sensor-header{align-items:center;display:flex;gap:12px;margin-bottom:8px}.sensor-block-info .sensor-header .sensor-icon-wrapper{align-items:center;background:hsla(0,0%,100%,.1);border-radius:8px;display:flex;flex-shrink:0;height:32px;justify-content:center;width:32px}.sensor-block-info .sensor-header .sensor-icon-wrapper .sensor-icon{color:#fff;font-size:16px}.sensor-block-info .sensor-header .sensor-details{flex:1;min-width:0}.sensor-block-info .sensor-header .sensor-details .sensor-name{color:#fff;font-size:13px;font-weight:600;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sensor-block-info .sensor-header .sensor-details .sensor-type{color:hsla(0,0%,100%,.7);font-size:11px;font-weight:400;margin-top:2px}.sensor-block-info .sensor-header .sensor-status{flex-shrink:0}.sensor-block-info .sensor-header .sensor-status .status-indicator{font-size:12px}.sensor-block-info .sensor-header .sensor-status .status-indicator.active{color:#10b981}.sensor-block-info .sensor-header .sensor-status .status-indicator.inactive{color:hsla(0,0%,100%,.3)}.sensor-block-info .sensor-value{background:rgba(96,165,250,.1);border-radius:4px;color:#60a5fa;font-size:12px;font-weight:600;margin-bottom:4px;padding:4px 8px;text-align:center}.sensor-block-info .sensor-last-update{color:hsla(0,0%,100%,.5);font-size:10px;text-align:center}.block-item{border-radius:12px;transition:all .2s ease-in-out}.block-item:hover:not(.read-only){cursor:grab}.block-item:active:not(.read-only){cursor:grabbing;transform:scale(.98)}.block-item .block-preview{margin-bottom:8px}@keyframes valueUpdate{0%{background:rgba(96,165,250,.1);transform:scale(1)}50%{background:rgba(34,197,94,.3);transform:scale(1.05)}to{background:rgba(34,197,94,.2);transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.react-flow__controls .react-flow__controls-button.active{background-color:#3b82f6!important;color:#fff!important}.react-flow__controls .react-flow__controls-button.active i,.react-flow__controls .react-flow__controls-button.active svg{color:#fff!important;fill:#fff!important}.react-flow__controls .react-flow__controls-button i{font-size:12px;line-height:1}.toolbar-btn-responsive .toolbar-btn-text{margin-left:8px}@media(max-width:1300px){.toolbar-btn-responsive .toolbar-btn-text{display:none}.toolbar-btn-responsive i{margin:0!important}.editor-toolbar .toolbar-right{gap:8px!important}}.scenario-btn{background:hsla(0,0%,100%,.05);border:none;transition:all .2s ease}.scenario-btn:hover{transform:scale(1.05)}.scenario-btn.btn-primary{background:rgba(59,130,246,.15);border:1px solid rgba(59,130,246,.3);color:#5ba3d0}.scenario-btn.btn-primary:hover{background:rgba(59,130,246,.25)!important;border:1px solid rgba(59,130,246,.4);color:#60a5fa!important}.scenario-btn.btn-outline-info{background:rgba(59,130,246,.15);border:1px solid rgba(59,130,246,.3);color:#5ba3d0}.scenario-btn.btn-outline-info:hover{background:rgba(59,130,246,.25)!important;border:1px solid rgba(59,130,246,.4);color:#60a5fa!important}.scenario-btn.btn-warning{background:rgba(255,193,7,.15);border:1px solid rgba(255,193,7,.3);color:#ffc107}.scenario-btn.btn-warning:hover{background:rgba(255,193,7,.25)!important;border:1px solid rgba(255,193,7,.4);color:#ffd43b!important}.scenario-card{backdrop-filter:blur(10px);background:linear-gradient(135deg,rgba(30,30,40,.6),rgba(20,20,30,.8));border:1px solid hsla(0,0%,100%,.08)!important;border-radius:12px;transition:all .2s ease}.scenario-card:hover{background:linear-gradient(135deg,rgba(35,35,45,.7),rgba(25,25,35,.9));border-color:hsla(0,0%,100%,.12)!important;transform:translateY(-2px)}.scenario-card.active{border-left:3px solid #28a745!important}.scenario-card.inactive{border-left:3px solid #6c757d!important}.scenario-title-wrapper{border-radius:6px;cursor:pointer;padding:4px 8px;transition:background .2s ease}.scenario-title-wrapper:hover{background:hsla(0,0%,100%,.05)}.scenario-title{color:#e0e0e0;font-size:1.05rem;font-weight:600;margin:0}.scenario-description{color:#999;font-size:.875rem;line-height:1.4}.scenario-info-item{color:#b0b0b0;font-size:.85rem}.scenario-info-item i{color:#6c757d;font-size:1rem;width:16px}.scenario-date-text{color:#999;font-size:.8rem}.scenario-date-text.synced{color:#28a745}.scenario-date-text.warning{color:#ffc107}.scenario-actions{border-top:1px solid hsla(0,0%,100%,.08);margin-top:12px;padding-top:12px}.scenario-action-btn{align-items:center;background:hsla(0,0%,100%,.05);border:none;border-radius:8px;display:flex;height:36px;justify-content:center;transition:all .2s ease;width:36px}.scenario-action-btn i{font-size:1.1rem}.scenario-action-btn:hover{transform:scale(1.05)}.scenario-action-btn.export{color:#5ba3d0}.scenario-action-btn.export:hover{background:rgba(59,130,246,.25)!important;border:1px solid rgba(59,130,246,.4);color:#60a5fa!important}.scenario-action-btn.edit{color:#28a745}.scenario-action-btn.edit:hover{background:rgba(40,167,69,.25)!important;border:1px solid rgba(40,167,69,.4);color:#4caf50!important}.scenario-action-btn.delete{color:#dc3545}.scenario-action-btn.delete:hover{background:rgba(239,68,68,.25)!important;border:1px solid rgba(239,68,68,.4);color:#ff6b7a!important}@media(max-width:768px){.scenario-card{margin-bottom:12px}.scenario-title{font-size:1rem}}.scenario-sync-modal .modal-content{background-color:#1a1a1a;border:1px solid #333;color:#e0e0e0}.scenario-sync-modal .modal-header{background-color:#212121;color:#fff}.scenario-sync-modal .modal-footer{background-color:#212121;border-top:1px solid #333}.scenario-sync-modal .btn-close{filter:invert(1)}.scenario-sync-modal .sync-list-container{max-height:600px;overflow-y:auto;padding:1.5rem}.scenario-sync-modal .sync-list-container::-webkit-scrollbar{width:8px}.scenario-sync-modal .sync-list-container::-webkit-scrollbar-track{background:#2a2a2a;border-radius:4px}.scenario-sync-modal .sync-list-container::-webkit-scrollbar-thumb{background:#4a4a4a;border-radius:4px}.scenario-sync-modal .sync-list-container::-webkit-scrollbar-thumb:hover{background:#5a5a5a}.scenario-sync-modal .scenario-item{background-color:#252525;border:1px solid #333;border-radius:8px;margin-bottom:.75rem;padding:1rem;transition:all .2s ease}.scenario-sync-modal .scenario-item:hover{background-color:#2a2a2a;border-color:#444}.scenario-sync-modal .scenario-item.synced{border-left:3px solid #28a745}.scenario-sync-modal .scenario-item.not-synced{border-left:3px solid #6c757d}.scenario-sync-modal .scenario-item.has-changes{border-left:3px solid #ffc107}.scenario-sync-modal .scenario-item.orphan{background-color:rgba(220,53,69,.05);border-left:3px solid #dc3545}.scenario-sync-modal .scenario-header{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:space-between;margin-bottom:.75rem}.scenario-sync-modal .scenario-title{color:#fff;flex:1;font-size:1rem;font-weight:500;margin:0;min-width:0}.scenario-sync-modal .scenario-badges{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.scenario-sync-modal .scenario-footer{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:space-between}.scenario-sync-modal .scenario-info{align-items:center;color:#999;display:flex;flex-wrap:wrap;font-size:.875rem;gap:1rem}.scenario-sync-modal .sync-status-badge{align-items:center;border-radius:4px;display:inline-flex;font-size:.75rem;font-weight:500;gap:.25rem;padding:.25rem .5rem}.scenario-sync-modal .sync-status-badge.synced{background-color:rgba(40,167,69,.15);color:#28a745}.scenario-sync-modal .sync-status-badge.pending{background-color:rgba(255,193,7,.15);color:#ffc107}.scenario-sync-modal .sync-status-badge.not-synced{background-color:hsla(208,7%,46%,.15);color:#999}.scenario-sync-modal .sync-status-badge.orphan{background-color:rgba(220,53,69,.15);color:#dc3545}.scenario-sync-modal .empty-state{color:#666;padding:3rem 1rem;text-align:center}.scenario-sync-modal .empty-state i{font-size:3rem;margin-bottom:1rem;opacity:.5}.scenario-sync-modal .loading-state,.scenario-sync-modal .syncing-state{padding:3rem 1rem;text-align:center}.scenario-sync-modal .error-alert{background-color:rgba(220,53,69,.1);border:1px solid rgba(220,53,69,.3);border-radius:8px;color:#dc3545;margin:1.5rem;padding:1rem}.scenario-sync-modal .info-alert{background-color:rgba(13,110,253,.1);border:1px solid rgba(13,110,253,.3);border-radius:8px;color:#6ea8fe;font-size:.875rem;margin:1.5rem 1.5rem 0;padding:.75rem 1rem}.scenario-sync-modal .btn-action{align-items:center;background:hsla(0,0%,100%,.05);border:none;border-radius:6px;cursor:pointer;display:inline-flex;font-size:.875rem;gap:.375rem;padding:.375rem .75rem;transition:all .2s ease}.scenario-sync-modal .btn-action:hover:not(:disabled){transform:scale(1.05)}.scenario-sync-modal .btn-action.primary{background:rgba(59,130,246,.15);border:1px solid rgba(59,130,246,.3);color:#5ba3d0}.scenario-sync-modal .btn-action.primary:hover:not(:disabled){background:rgba(59,130,246,.25)!important;border:1px solid rgba(59,130,246,.4);color:#60a5fa!important}.scenario-sync-modal .btn-action.warning{background:rgba(59,130,246,.15);border:1px solid rgba(59,130,246,.3);color:#5ba3d0}.scenario-sync-modal .btn-action.warning:hover:not(:disabled){background:rgba(59,130,246,.25)!important;border:1px solid rgba(59,130,246,.4);color:#60a5fa!important}.scenario-sync-modal .btn-action.danger{background:rgba(239,68,68,.15);border:1px solid rgba(239,68,68,.3);color:#dc3545}.scenario-sync-modal .btn-action.danger:hover:not(:disabled){background:rgba(239,68,68,.25)!important;border:1px solid rgba(239,68,68,.4);color:#ff6b7a!important}.scenario-sync-modal .btn-action:disabled{cursor:not-allowed;opacity:.5}.scenario-sync-modal .modal-footer .btn{transition:all .2s ease}.scenario-sync-modal .modal-footer .btn:hover:not(:disabled){transform:scale(1.05)}.scenario-sync-modal .modal-footer .btn.btn-primary{background:rgba(59,130,246,.15);border:1px solid rgba(59,130,246,.3);color:#5ba3d0}.scenario-sync-modal .modal-footer .btn.btn-primary:hover:not(:disabled){background:rgba(59,130,246,.25)!important;border:1px solid rgba(59,130,246,.4);color:#60a5fa!important}.scenario-sync-modal .modal-footer .btn.btn-secondary{background:rgba(239,68,68,.15);border:1px solid rgba(239,68,68,.3);color:#dc3545}.scenario-sync-modal .modal-footer .btn.btn-secondary:hover:not(:disabled){background:rgba(239,68,68,.25)!important;border:1px solid rgba(239,68,68,.4);color:#ff6b7a!important}.scenario-sync-modal .modal-footer .btn:disabled{cursor:not-allowed;opacity:.5;transform:none!important}@media(max-width:768px){.scenario-sync-modal .scenario-header{align-items:flex-start;flex-direction:column}.scenario-sync-modal .scenario-footer{align-items:stretch;flex-direction:column}.scenario-sync-modal .btn-action{justify-content:center;width:100%}.scenario-sync-modal .scenario-info{width:100%}}body{background-color:#d3d3d3}.invalid-absolute{right:1.5rem!important;top:1.9rem!important}.apexcharts-yaxis-label{padding-right:10px!important}.leaflet-container{background:#dfe8f0;font:inherit}.leaflet-container canvas,.leaflet-container img,.leaflet-container svg,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-pane,.leaflet-tile{max-height:none!important;max-width:none!important}