@import"https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;600&family=Roboto:wght@400;500&family=Inter:wght@400;500&family=Lato:wght@400;700&family=Montserrat:wght@400;600&family=Poppins:wght@400;600&family=Source+Sans+3:wght@400;600&family=Nunito:wght@400;600&family=Raleway:wght@400;600&family=Ubuntu:wght@400;500&display=swap";@import"https://fonts.googleapis.com/css2?family=Noto+Sans:wght@400;600&family=Oswald:wght@400;600&family=Work+Sans:wght@400;600&family=DM+Sans:wght@400;500&family=Manrope:wght@400;600&family=Plus+Jakarta+Sans:wght@400;600&family=Outfit:wght@400;600&family=Lexend:wght@400;600&family=Mulish:wght@400;600&family=Karla:wght@400;600&display=swap";@import"https://fonts.googleapis.com/css2?family=Quicksand:wght@400;600&family=Barlow:wght@400;600&family=Rubik:wght@400;500&family=Urbanist:wght@400;600&family=Space+Grotesk:wght@400;500&family=Figtree:wght@400;600&family=Syne:wght@400;600&family=Archivo:wght@400;600&family=Hind:wght@400;600&family=Josefin+Sans:wght@400;600&display=swap";@import"https://fonts.googleapis.com/css2?family=Merriweather:wght@400;700&family=Lora:wght@400;600&family=Playfair+Display:wght@400;600&family=Source+Serif+4:wght@400;600&family=Noto+Serif:wght@400;600&family=Libre+Baskerville:wght@400;700&family=EB+Garamond:wght@400;600&family=Crimson+Text:wght@400;600&family=Bitter:wght@400;600&family=PT+Serif:wght@400;700&display=swap";@import"https://fonts.googleapis.com/css2?family=DM+Serif+Display&family=Fraunces:wght@400;600&family=Libre+Bodoni:wght@400;600&family=Newsreader:wght@400;600&family=Zilla+Slab:wght@400;600&family=Literata:wght@400;600&display=swap";@import"https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500&family=Source+Code+Pro:wght@400;500&family=JetBrains+Mono:wght@400;500&family=IBM+Plex+Mono:wght@400;500&family=Inconsolata:wght@400;600&family=Space+Mono:wght@400;700&family=Roboto+Mono:wght@400;500&family=Oxygen+Mono&display=swap";@import"https://fonts.googleapis.com/css2?family=Victor+Mono:wght@400;500&family=Red+Hat+Mono:wght@400;500&family=Anonymous+Pro:wght@400;700&display=swap";@import"https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Anton&family=Pacifico&family=Dancing+Script:wght@400;600&family=Lobster&family=Comfortaa:wght@400;600&family=Amatic+SC:wght@400;700&family=Righteous&family=Permanent+Marker&family=Shadows+Into+Light&display=swap";:root{--separator-border: rgba(128, 128, 128, .35);--sash-hover-transition-duration: .1s}.allotment-module_splitView__L-yRc{height:100%;overflow:hidden;position:relative;width:100%}.allotment-module_splitView__L-yRc>.allotment-module_sashContainer__fzwJF{height:100%;pointer-events:none;position:absolute;width:100%}.allotment-module_splitView__L-yRc>.allotment-module_sashContainer__fzwJF>.allotment-module_sash__QA-2t{pointer-events:auto}.allotment-module_splitView__L-yRc>.allotment-module_splitViewContainer__rQnVa{height:100%;position:relative;white-space:nowrap;width:100%}.allotment-module_splitView__L-yRc>.allotment-module_splitViewContainer__rQnVa>.allotment-module_splitViewView__MGZ6O{overflow:hidden;position:absolute;white-space:initial}.allotment-module_splitView__L-yRc.allotment-module_vertical__WSwwa>.allotment-module_splitViewContainer__rQnVa>.allotment-module_splitViewView__MGZ6O{width:100%}.allotment-module_splitView__L-yRc.allotment-module_horizontal__7doS8>.allotment-module_splitViewContainer__rQnVa>.allotment-module_splitViewView__MGZ6O{height:100%}.allotment-module_splitView__L-yRc.allotment-module_separatorBorder__x-rDS>.allotment-module_splitViewContainer__rQnVa>.allotment-module_splitViewView__MGZ6O:not(:first-child):before{background-color:var(--separator-border);content:" ";left:0;pointer-events:none;position:absolute;top:0;z-index:5}.allotment-module_splitView__L-yRc.allotment-module_separatorBorder__x-rDS.allotment-module_vertical__WSwwa>.allotment-module_splitViewContainer__rQnVa>.allotment-module_splitViewView__MGZ6O:not(:first-child):before{height:1px;width:100%}.allotment-module_splitView__L-yRc.allotment-module_separatorBorder__x-rDS.allotment-module_horizontal__7doS8>.allotment-module_splitViewContainer__rQnVa>.allotment-module_splitViewView__MGZ6O:not(:first-child):before{height:100%;width:1px}:root{--focus-border: #007fd4;--sash-size: 8px;--sash-hover-size: 4px}.sash-module_sash__K-9lB{position:absolute;z-index:35;touch-action:none;pointer-events:auto;text-align:initial}.sash-module_sash__K-9lB.sash-module_disabled__Hm-wx{pointer-events:none}.sash-module_sash__K-9lB.sash-module_mac__Jf6OJ.sash-module_vertical__pB-rs{cursor:col-resize}.sash-module_sash__K-9lB.sash-module_vertical__pB-rs.sash-module_minimum__-UKxp{cursor:e-resize}.sash-module_sash__K-9lB.sash-module_vertical__pB-rs.sash-module_maximum__TCWxD{cursor:w-resize}.sash-module_sash__K-9lB.sash-module_mac__Jf6OJ.sash-module_horizontal__kFbiw{cursor:row-resize}.sash-module_sash__K-9lB.sash-module_horizontal__kFbiw.sash-module_minimum__-UKxp{cursor:s-resize}.sash-module_sash__K-9lB.sash-module_horizontal__kFbiw.sash-module_maximum__TCWxD{cursor:n-resize}.sash-module_sash__K-9lB.sash-module_disabled__Hm-wx{cursor:default!important;pointer-events:none!important}.sash-module_sash__K-9lB.sash-module_vertical__pB-rs{cursor:ew-resize;top:0;width:var(--sash-size);height:100%}.sash-module_sash__K-9lB.sash-module_horizontal__kFbiw{cursor:ns-resize;left:0;width:100%;height:var(--sash-size)}.sash-module_sash__K-9lB:not(.sash-module_disabled__Hm-wx)>.sash-module_orthogonal-drag-handle__Yii2-{content:" ";height:calc(var(--sash-size) * 2);width:calc(var(--sash-size) * 2);z-index:100;display:block;cursor:all-scroll;position:absolute}.sash-module_sash__K-9lB.sash-module_horizontal__kFbiw.sash-module_orthogonal-edge-north__f7Noe:not(.sash-module_disabled__Hm-wx)>.sash-module_orthogonal-drag-handle__Yii2-.sash-module_start__uZEDk,.sash-module_sash__K-9lB.sash-module_horizontal__kFbiw.sash-module_orthogonal-edge-south__6ZrFC:not(.sash-module_disabled__Hm-wx)>.sash-module_orthogonal-drag-handle__Yii2-.sash-module_end__0TP-R{cursor:nwse-resize}.sash-module_sash__K-9lB.sash-module_horizontal__kFbiw.sash-module_orthogonal-edge-north__f7Noe:not(.sash-module_disabled__Hm-wx)>.sash-module_orthogonal-drag-handle__Yii2-.sash-module_end__0TP-R,.sash-module_sash__K-9lB.sash-module_horizontal__kFbiw.sash-module_orthogonal-edge-south__6ZrFC:not(.sash-module_disabled__Hm-wx)>.sash-module_orthogonal-drag-handle__Yii2-.sash-module_start__uZEDk{cursor:nesw-resize}.sash-module_sash__K-9lB.sash-module_vertical__pB-rs>.sash-module_orthogonal-drag-handle__Yii2-.sash-module_start__uZEDk{left:calc(var(--sash-size) * -.5);top:calc(var(--sash-size) * -1)}.sash-module_sash__K-9lB.sash-module_vertical__pB-rs>.sash-module_orthogonal-drag-handle__Yii2-.sash-module_end__0TP-R{left:calc(var(--sash-size) * -.5);bottom:calc(var(--sash-size) * -1)}.sash-module_sash__K-9lB.sash-module_horizontal__kFbiw>.sash-module_orthogonal-drag-handle__Yii2-.sash-module_start__uZEDk{top:calc(var(--sash-size) * -.5);left:calc(var(--sash-size) * -1)}.sash-module_sash__K-9lB.sash-module_horizontal__kFbiw>.sash-module_orthogonal-drag-handle__Yii2-.sash-module_end__0TP-R{top:calc(var(--sash-size) * -.5);right:calc(var(--sash-size) * -1)}.sash-module_sash__K-9lB:before{content:"";pointer-events:none;position:absolute;width:100%;height:100%;transition:background-color var(--sash-hover-transition-duration) ease-out;background:transparent}.sash-module_sash__K-9lB.sash-module_vertical__pB-rs:before{width:var(--sash-hover-size);left:calc(50% - (var(--sash-hover-size) / 2))}.sash-module_sash__K-9lB.sash-module_horizontal__kFbiw:before{height:var(--sash-hover-size);top:calc(50% - (var(--sash-hover-size) / 2))}.sash-module_sash__K-9lB.sash-module_hover__80W6I:before,.sash-module_sash__K-9lB.sash-module_active__bJspD:before{background:var(--focus-border)}:root{--rct-color-tree-bg: #f6f8fa;--rct-color-tree-focus-outline: #0366d6;--rct-color-focustree-item-selected-bg: #e8eaed;--rct-color-focustree-item-selected-text: inherit;--rct-color-focustree-item-focused-border: #0366d6;--rct-color-focustree-item-draggingover-bg: #ebf0f4;--rct-color-focustree-item-draggingover-color: inherit;--rct-color-nonfocustree-item-selected-bg: #e8eaed;--rct-color-nonfocustree-item-selected-text: inherit;--rct-color-nonfocustree-item-focused-border: #dbdbdb;--rct-color-search-highlight-bg: #a2aed2;--rct-color-drag-between-line-bg: #0366d6;--rct-color-arrow: #373a3f;--rct-item-height: 22px;--rct-color-renaming-input-submitbutton-bg: inherit;--rct-color-renaming-input-submitbutton-bg-hover: #0366d6;--rct-color-renaming-input-submitbutton-bg-active: #095fc1;--rct-color-renaming-input-submitbutton-text: inherit;--rct-color-renaming-input-submitbutton-text-hover: #ffffff;--rct-color-renaming-input-submitbutton-text-active: #ffffff}.rct-tree-root{font-family:sans-serif;background-color:var(--rct-color-tree-bg);padding:4px 0}.rct-tree-root-focus{outline:1px solid var(--rct-color-tree-focus-outline)}.rct-tree-item-li{font-size:.8rem;list-style-type:none;padding:0;margin:0}.rct-tree-item-title-container{display:flex;align-items:center;border-top:1px solid transparent;border-bottom:1px solid transparent;padding-left:var(--depthOffset, 0px)}.rct-tree-item-button{flex-grow:1;display:flex;align-items:center;box-sizing:border-box;background-color:transparent;font-family:inherit;font-size:inherit;border:none;width:100%;height:var(--rct-item-height);text-align:left;color:inherit;outline:none}.rct-tree-item-arrow{width:10px}.rct-tree-item-arrow svg{width:10px}.rct-tree-item-arrow-path{fill:var(--rct-color-arrow)}.rct-tree-items-container{margin:0;padding:0}.rct-tree-root:not(.rct-tree-root-focus) .rct-tree-item-title-container-selected{background-color:var(--rct-color-nonfocustree-item-selected-bg);color:var(--rct-color-nonfocustree-item-selected-text)}.rct-tree-root.rct-tree-root-focus .rct-tree-item-title-container-selected{background-color:var(--rct-color-focustree-item-selected-bg);color:var(--rct-color-focustree-item-selected-text)}.rct-tree-root.rct-tree-root-focus .rct-tree-item-title-container-focused{outline:none;border-color:var(--rct-color-focustree-item-focused-border)}.rct-tree-root:not(.rct-tree-root-focus) .rct-tree-item-title-container-focused{outline:none;border-color:var(--rct-color-nonfocustree-item-focused-border)}.rct-tree-item-title-container-dragging-over{background-color:var(--rct-color-focustree-item-draggingover-bg);color:var(--rct-color-focustree-item-draggingover-color)}.rct-tree-item-button-search-match{font-style:italic}.rct-tree-item-search-highlight{background-color:var(--rct-color-search-highlight-bg)}.rct-tree-drag-between-line{position:absolute;right:0;top:-2px;height:4px;background-color:var(--rct-color-drag-between-line-bg)}.rct-tree-drag-between-line-top{top:0}.rct-tree-drag-between-line-bottom{top:-4px}.rct-tree-search-input-container{position:absolute;top:0;right:0;width:120px}.rct-tree-search-input{position:fixed;width:120px}.rct-tree-item-renaming-form{flex-grow:1;display:flex}.rct-tree-item-renaming-input{flex-grow:1;background-color:inherit;border:none;color:inherit;outline:none}.rct-tree-item-renaming-submit-button{border:none;background-color:var(--rct-color-renaming-input-submitbutton-bg);border-radius:999px;color:var(--rct-color-renaming-input-submitbutton-text);cursor:pointer}.rct-tree-item-renaming-submit-button:hover{background-color:var(--rct-color-renaming-input-submitbutton-bg-hover);color:var(--rct-color-renaming-input-submitbutton-text-hover)}.rct-tree-item-renaming-submit-button:active{background-color:var(--rct-color-renaming-input-submitbutton-bg-active);color:var(--rct-color-renaming-input-submitbutton-text-active)}:root{--rct-color-tree-bg: transparent;--rct-item-height: 28px;--rct-color-search-highlight-bg: #acccf1;--rct-color-tree-focus-outline: transparent;--rct-item-margin: 1px;--rct-item-padding: 8px;--rct-radius: 4px;--rct-bar-offset: 6px;--rct-bar-width: 4px;--rct-bar-color: #0366d6;--rct-focus-outline: #000000;--rct-color-focustree-item-selected-bg: #f0f2f5;--rct-color-focustree-item-hover-bg: #f0f2f5;--rct-color-focustree-item-hover-text: inherit;--rct-color-focustree-item-active-bg: #e4e6eb;--rct-color-focustree-item-active-text: #4f4f4f;--rct-arrow-size: 10px;--rct-arrow-container-size: 16px;--rct-arrow-padding: 6px;--rct-cursor: pointer;--rct-search-width: 120px;--rct-search-height: 16px;--rct-search-padding: 8px;--rct-search-border: #b4b7bd;--rct-search-border-bottom: #0366d6;--rct-search-bg: #f8f9fa;--rct-search-text: #000000;--rct-search-text-offset: calc(var(--rct-search-padding) * 2 + 16px);--rct-search-container-width: calc(var(--rct-search-width) + var(--rct-search-text-offset) + var(--rct-search-padding) + 2px)}.rct-dark{--rct-color-search-highlight-bg: #2f5381;--rct-bar-color: #1d7be5;--rct-focus-outline: #ffffff;--rct-color-focustree-item-selected-text: #ffffff;--rct-color-focustree-item-selected-bg: #373737;--rct-color-focustree-item-hover-bg: #373737;--rct-color-focustree-item-hover-text: #ffffff;--rct-color-focustree-item-active-bg: #313131;--rct-color-focustree-item-active-text: #ffffff;--rct-color-focustree-item-draggingover-bg: #313131;--rct-color-focustree-item-draggingover-color: #ffffff;--rct-color-arrow: #ffffff;--rct-search-border: #4f4f4f;--rct-search-border-bottom: #1d7be5;--rct-search-bg: #373737;--rct-search-text: #ffffff;--rct-search-text-offset: calc(var(--rct-search-padding) * 2 + 16px)}.rct-tree-item-button{padding:0 var(--rct-item-padding) 0 calc(var(--rct-item-padding) + var(--rct-arrow-container-size) + var(--rct-arrow-padding));margin-left:calc(-1 * var(--rct-arrow-size));cursor:var(--rct-cursor);transition:color .1s ease-out,background-color .1s ease-out}.rct-tree-item-button:focus-visible{outline:2px solid var(--rct-focus-outline)}.rct-tree-item-button:hover{background-color:var(--rct-color-focustree-item-hover-bg);color:var(--rct-color-focustree-item-hover-text)}.rct-tree-item-button:active{background-color:var(--rct-color-focustree-item-active-bg);color:var(--rct-color-focustree-item-active-text)}.rct-tree-item-title-container-selected .rct-tree-item-button{background-color:var(--rct-color-focustree-item-selected-bg);color:var(--rct-color-focustree-item-selected-text)}.rct-tree-item-title-container-selected .rct-tree-item-button:before{content:" ";position:absolute;top:calc(var(--rct-bar-offset) + var(--rct-item-margin));left:calc(-.5 * var(--rct-bar-width));height:calc(var(--rct-item-height) - 2 * var(--rct-bar-offset));width:var(--rct-bar-width);background-color:var(--rct-bar-color);border-radius:99px}.rct-tree-item-button{margin-top:var(--rct-item-margin);margin-bottom:var(--rct-item-margin);position:relative;border-radius:var(--rct-radius)}.rct-tree-item-title-container-dragging-over .rct-tree-item-button{background-color:var(--rct-color-focustree-item-draggingover-bg);color:var(--rct-color-focustree-item-draggingover-color)}.rct-tree-item-title-container{border:none;background-color:unset!important}.rct-tree-item-arrow{z-index:1;margin-right:calc(-1 * var(--rct-arrow-container-size) + var(--rct-arrow-padding));width:var(--rct-arrow-container-size);height:var(--rct-arrow-container-size);display:flex;justify-content:center;align-content:center;border-radius:var(--rct-radius);cursor:var(--rct-cursor)}.rct-tree-item-arrow.rct-tree-item-arrow-isFolder:hover{background-color:var(--rct-color-focustree-item-hover-bg);color:var(--rct-color-focustree-item-hover-text)}.rct-tree-item-arrow svg{width:var(--rct-arrow-size)}.rct-tree-item-renaming-submit-button{border-radius:var(--rct-radius);visibility:hidden}.rct-tree-drag-between-line{border-radius:99px;height:3px}.rct-tree-search-input-container{width:var(--rct-search-container-width)}.rct-tree-search-input{width:var(--rct-search-width);height:var(--rct-search-height);padding:var(--rct-search-padding);padding-left:var(--rct-search-text-offset);margin:0;border:1px solid var(--rct-search-border);border-bottom:2px solid var(--rct-search-border-bottom);border-radius:var(--rct-radius);background-color:var(--rct-search-bg);color:var(--rct-search-text)}.rct-tree-search-input:focus{outline:none}.rct-tree-input-icon{content:url(data:image/svg+xml,%3Csvg%20stroke%3D%22currentColor%22%20fill%3D%22currentColor%22%20stroke-width%3D%220%22%20viewBox%3D%220%200%2016%2016%22%20height%3D%221em%22%20width%3D%221em%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M11.742%2010.344a6.5%206.5%200%201%200-1.397%201.398h-.001c.03.04.062.078.098.115l3.85%203.85a1%201%200%200%200%201.415-1.414l-3.85-3.85a1.007%201.007%200%200%200-.115-.1zM12%206.5a5.5%205.5%200%201%201-11%200%205.5%205.5%200%200%201%2011%200z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E);position:fixed;transform:translateY(var(--rct-search-padding)) translate(var(--rct-search-padding));z-index:1}.rct-dark .rct-tree-input-icon{content:url(data:image/svg+xml,%3Csvg%20stroke%3D%22%23ffffff%22%20fill%3D%22%23ffffff%22%20stroke-width%3D%220%22%20viewBox%3D%220%200%2016%2016%22%20height%3D%221em%22%20width%3D%221em%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M11.742%2010.344a6.5%206.5%200%201%200-1.397%201.398h-.001c.03.04.062.078.098.115l3.85%203.85a1%201%200%200%200%201.415-1.414l-3.85-3.85a1.007%201.007%200%200%200-.115-.1zM12%206.5a5.5%205.5%200%201%201-11%200%205.5%205.5%200%200%201%2011%200z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E)}.rct-rtl .rct-tree-item-title-container{flex-direction:row-reverse}.rct-rtl .rct-tree-item-button{text-align:right;justify-content:flex-end}.rct-rtl .rct-tree-item-title-container{padding-right:var(--depthOffset, 0px);padding-left:0}.rct-rtl .rct-tree-item-title-container-selected .rct-tree-item-button:before{left:unset;right:calc(-.5 * var(--rct-bar-width))}.rct-rtl .rct-tree-item-arrow{margin-left:4px}.rct-rtl .rct-tree-item-arrow:not(.rct-tree-item-arrow-expanded){transform:rotate(180deg)}.context-menu{position:fixed;z-index:10000;min-width:160px;max-width:300px;padding:4px 0;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:contextMenuFadeIn .12s ease-out;font-family:var(--font-ui);font-size:13px}@keyframes contextMenuFadeIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.context-menu-item{display:flex;align-items:center;gap:8px;width:calc(100% - 8px);padding:6px 10px;margin:0 4px;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-primary);text-align:left;cursor:pointer;transition:background-color var(--transition-fast);font-family:inherit;font-size:inherit;line-height:1.4}.context-menu-item:hover,.context-menu-item-focused{background-color:var(--bg-hover)}.context-menu-item:active{background-color:var(--bg-active)}.context-menu-item-disabled{color:var(--text-muted);cursor:not-allowed}.context-menu-item-disabled:hover{background-color:transparent}.context-menu-item-danger{color:var(--accent-red)}.context-menu-item-danger:hover,.context-menu-item-danger.context-menu-item-focused{background-color:color-mix(in srgb,var(--accent-red) 10%,transparent)}.context-menu-item-danger:active{background-color:color-mix(in srgb,var(--accent-red) 15%,transparent)}.context-menu-item-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:16px;height:16px}.context-menu-item-icon svg{width:16px;height:16px;fill:currentColor}.context-menu-item-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.context-menu-item-shortcut{flex-shrink:0;margin-left:auto;padding-left:16px;color:var(--text-secondary);font-size:12px}.context-menu-separator{height:1px;margin:4px 0;background-color:var(--border-color)}@media(max-width:768px){.context-menu{min-width:200px;max-width:90vw;padding:8px 0;font-size:14px}.context-menu-item{padding:12px 16px;gap:12px;min-height:var(--touch-target-min)}.context-menu-item-icon{width:20px;height:20px}.context-menu-item-icon svg{width:20px;height:20px}.context-menu-item-shortcut{display:none}.context-menu-separator{margin:8px 0}.context-menu-item:hover{background-color:transparent}.context-menu-item:active{background-color:var(--bg-hover)}}.script-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;animation:scriptFadeIn .15s ease}@keyframes scriptFadeIn{0%{opacity:0}to{opacity:1}}.script-modal{background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:90%;max-width:420px;display:flex;flex-direction:column;animation:scriptSlideIn .15s ease}@keyframes scriptSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.script-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:var(--radius-xl) var(--radius-xl) 0 0}.script-modal-title{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-size:1rem;font-weight:500}.script-modal-icon{width:18px;height:18px;color:var(--accent-orange)}.script-modal-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.script-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.script-modal-close svg{width:16px;height:16px}.script-modal-content{padding:1.25rem}.script-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:var(--text-secondary)}.script-loading .loading-spinner{width:24px;height:24px;border:2px solid var(--bg-tertiary);border-top-color:var(--accent-primary);border-radius:50%;animation:scriptSpin .8s linear infinite;margin-bottom:.75rem}@keyframes scriptSpin{to{transform:rotate(360deg)}}.script-form{display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group>label{font-size:12px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.form-group input[type=text]{padding:8px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-ui);font-size:13px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-group input[type=text]:focus{outline:none;border-color:var(--border-focus)}.form-group input[type=text]::placeholder{color:var(--text-muted)}.form-group-checkbox{gap:0}.form-group-checkbox>label{display:flex;flex-wrap:wrap;align-items:center;gap:8px;cursor:pointer;padding:10px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:border-color .15s ease,background-color .15s ease}.form-group-checkbox>label:hover{background:var(--bg-hover)}.form-group-checkbox input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--accent-primary);cursor:pointer}.checkbox-label{font-size:13px;font-weight:500;color:var(--text-primary);text-transform:none;letter-spacing:normal}.checkbox-description{flex-basis:100%;font-size:12px;color:var(--text-secondary);margin-left:24px;text-transform:none;letter-spacing:normal;font-weight:400}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.btn{padding:8px 16px;font-family:var(--font-ui);font-size:13px;font-weight:500;border-radius:var(--radius-lg);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.btn-secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.btn-secondary:hover{background:var(--bg-hover);border-color:var(--text-muted)}.btn-primary{background:var(--accent-primary);border:1px solid var(--accent-primary);color:#fff}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.script-modal-overlay{align-items:stretch;justify-content:stretch}.script-modal{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0;border:none;animation:scriptMobileSlideUp .25s ease}@keyframes scriptMobileSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.script-modal-header{border-radius:0;padding:12px 16px;min-height:var(--mobile-header-height)}.script-modal-title{font-size:16px}.script-modal-close{width:40px;height:40px}.script-modal-close svg{width:20px;height:20px}.script-modal-content{flex:1;padding:16px;overflow-y:auto;-webkit-overflow-scrolling:touch}.form-group input[type=text]{min-height:var(--touch-target-min);padding:12px;font-size:16px}.form-group>label{font-size:13px;margin-bottom:8px}.form-group-checkbox>label{min-height:var(--touch-target-min);padding:12px 16px}.form-group-checkbox input[type=checkbox]{width:20px;height:20px}.btn{min-height:var(--touch-target-min);padding:12px 20px;font-size:14px}.form-actions{padding-top:16px;gap:12px}}.workspace-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;animation:workspaceFadeIn .15s ease}@keyframes workspaceFadeIn{0%{opacity:0}to{opacity:1}}.workspace-modal{background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:90%;max-width:420px;display:flex;flex-direction:column;animation:workspaceSlideIn .15s ease}@keyframes workspaceSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.workspace-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:var(--radius-xl) var(--radius-xl) 0 0}.workspace-modal-title{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-size:1rem;font-weight:500}.workspace-modal-icon{width:18px;height:18px;color:var(--accent-blue)}.workspace-modal-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.workspace-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.workspace-modal-close svg{width:16px;height:16px}.workspace-modal-content{padding:1.25rem}.workspace-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:var(--text-secondary)}.workspace-loading .loading-spinner{width:24px;height:24px;border:2px solid var(--bg-tertiary);border-top-color:var(--accent-primary);border-radius:50%;animation:workspaceSpin .8s linear infinite;margin-bottom:.75rem}@keyframes workspaceSpin{to{transform:rotate(360deg)}}.workspace-form{display:flex;flex-direction:column;gap:1rem}.workspace-form .form-group{display:flex;flex-direction:column;gap:.5rem}.workspace-form .form-group>label{font-size:12px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.workspace-form .form-group input[type=text],.workspace-form .form-group input[type=number]{padding:8px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-ui);font-size:13px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.workspace-form .form-group input[type=text]:focus,.workspace-form .form-group input[type=number]:focus{outline:none;border-color:var(--border-focus)}.workspace-form .form-group input[type=text]::placeholder{color:var(--text-muted)}.workspace-form .form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.workspace-form .btn{padding:8px 16px;font-family:var(--font-ui);font-size:13px;font-weight:500;border-radius:var(--radius-lg);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.workspace-form .btn-secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.workspace-form .btn-secondary:hover{background:var(--bg-hover);border-color:var(--text-muted)}.workspace-form .btn-primary{background:var(--accent-primary);border:1px solid var(--accent-primary);color:#fff}.workspace-form .btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.workspace-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.workspace-modal-overlay{align-items:stretch;justify-content:stretch}.workspace-modal{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0;border:none;animation:workspaceMobileSlideUp .25s ease}@keyframes workspaceMobileSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.workspace-modal-header{border-radius:0;padding:12px 16px;min-height:var(--mobile-header-height)}.workspace-modal-title{font-size:16px}.workspace-modal-close{width:40px;height:40px}.workspace-modal-close svg{width:20px;height:20px}.workspace-modal-content{flex:1;padding:16px;overflow-y:auto;-webkit-overflow-scrolling:touch}.workspace-form .form-group input[type=text]{min-height:var(--touch-target-min);padding:12px;font-size:16px}.workspace-form .form-group>label{font-size:13px;margin-bottom:8px}.workspace-form .btn{min-height:var(--touch-target-min);padding:12px 20px;font-size:14px}.workspace-form .form-actions{padding-top:16px;gap:12px}}.layout-section{margin-bottom:1rem;min-width:0}.layout-section-title{font-size:12px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin:0 0 .5rem}.layout-section-grid{display:grid;grid-template-columns:repeat(3,minmax(72px,1fr));gap:.5rem 1rem;margin-bottom:.5rem}.layout-section-grid .form-group{min-width:0}.layout-section .form-group input[type=number]{min-width:0;width:100%;box-sizing:border-box}.layout-section-buttons{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.layout-resize-default-btn,.layout-snap-grid-btn{font-size:12px;padding:4px 8px;background:var(--bg-secondary, #252526);border:1px solid var(--border-color, #404040);border-radius:4px;color:var(--text-primary);cursor:pointer}.layout-resize-default-btn:hover:not(:disabled),.layout-snap-grid-btn:hover:not(:disabled){background:var(--bg-tertiary, #2d2d2d)}.edit-drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:899;cursor:default}.edit-drawer-container{position:fixed;top:0;right:0;bottom:0;width:560px;max-width:100vw;z-index:900;display:flex;flex-direction:column;background:var(--bg-secondary);border-left:1px solid var(--glass-border);box-shadow:none;transform:translate(100%);visibility:hidden;user-select:auto;-webkit-user-select:auto;touch-action:auto;transition:transform .25s cubic-bezier(.4,0,.2,1),visibility 0s linear .25s,box-shadow .25s ease}.edit-drawer-container.open{transform:translate(0);visibility:visible;box-shadow:-4px 0 24px #00000040;transition:transform .25s cubic-bezier(.4,0,.2,1),visibility 0s linear 0s,box-shadow .25s ease}.edit-drawer-header{display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);flex-shrink:0;gap:8px}.edit-drawer-title{display:flex;flex-direction:row;align-items:center;gap:.5rem;color:var(--text-primary);font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.edit-drawer-title svg{width:16px;height:16px;color:var(--accent-primary);flex-shrink:0}.edit-drawer-status{display:flex;flex-direction:row;align-items:center;gap:6px;font-size:11px;font-weight:500;white-space:nowrap;flex-shrink:0}.edit-drawer-status[data-status=idle]{color:transparent}.edit-drawer-status[data-status=saving]{color:var(--text-muted)}.edit-drawer-status[data-status=saved]{color:var(--accent-primary)}.edit-drawer-status[data-status=error]{color:var(--danger, #e74c3c)}.edit-drawer-status .status-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.edit-drawer-status[data-status=saving] .status-dot{animation:editDrawerPulse 1s ease-in-out infinite}@keyframes editDrawerPulse{0%,to{opacity:1}50%{opacity:.4}}.edit-drawer-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.edit-drawer-close:hover{background:var(--bg-hover);color:var(--text-primary)}.edit-drawer-close svg{width:16px;height:16px}.edit-drawer-body{flex:1;overflow-y:auto;padding:1rem}.edit-drawer-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem}.edit-drawer-loading .loading-spinner{width:24px;height:24px;border:2px solid var(--bg-tertiary);border-top-color:var(--accent-primary);border-radius:50%;animation:editDrawerSpin .8s linear infinite}@keyframes editDrawerSpin{to{transform:rotate(360deg)}}.edit-drawer-footer{flex-shrink:0;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color)}.edit-drawer-delete-btn{padding:8px 16px;font-family:var(--font-ui);font-size:13px;font-weight:500;border-radius:var(--radius-md);cursor:pointer;background:transparent;border:1px solid var(--danger, #e74c3c);color:var(--danger, #e74c3c);transition:background var(--transition-fast),color var(--transition-fast)}.edit-drawer-delete-btn:hover{background:var(--danger, #e74c3c);color:#fff}@media(max-width:600px){.edit-drawer-container{width:100%}}.de-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;animation:deFadeIn .15s ease}@keyframes deFadeIn{0%{opacity:0}to{opacity:1}}.de-modal{background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:90%;max-height:90vh;display:flex;flex-direction:column;animation:deSlideIn .15s ease}@keyframes deSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.de-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:var(--radius-xl) var(--radius-xl) 0 0;flex-shrink:0}.de-modal-title{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-size:1rem;font-weight:500}.de-modal-icon{display:flex;align-items:center;justify-content:center;color:var(--accent-primary)}.de-modal-icon svg{width:18px;height:18px}.de-modal-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.de-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.de-modal-close svg{width:16px;height:16px}.de-modal-tabbed-body{display:flex;flex-direction:row;flex:1;min-height:0;overflow:hidden}.de-modal-tabs{display:flex;flex-direction:column;gap:2px;padding:.75rem 0;background:var(--bg-tertiary);border-right:1px solid var(--border-color);flex-shrink:0;width:140px}.de-modal-tab{padding:10px 1rem;background:transparent;border:none;border-left:3px solid transparent;border-radius:0;margin:0;color:var(--text-secondary);font-family:var(--font-ui);font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;text-align:left;transition:color var(--transition-fast),border-color var(--transition-fast),background-color var(--transition-fast)}.de-modal-tab:hover{color:var(--text-primary);background:var(--bg-hover)}.de-modal-tab.active{color:var(--accent-primary);border-left-color:var(--accent-primary);background:var(--bg-hover)}.de-modal-content{flex:1;overflow-y:auto;padding:1.25rem;min-height:0;min-width:0}.de-modal-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;color:var(--text-secondary);gap:.75rem}.de-modal-loading .loading-spinner{width:24px;height:24px;border:2px solid var(--bg-tertiary);border-top-color:var(--accent-primary);border-radius:50%;animation:deSpin .8s linear infinite}@keyframes deSpin{to{transform:rotate(360deg)}}.de-modal-footer{display:flex;align-items:center;gap:8px;padding:.75rem 1.25rem;border-top:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:0 0 var(--radius-xl) var(--radius-xl);flex-shrink:0}.de-modal-footer-spacer{flex:1}.de-modal-dirty-badge{font-size:11px;font-weight:500;color:var(--accent-primary);padding:2px 8px;border:1px solid var(--accent-primary);border-radius:var(--radius-pill)}.de-btn{padding:8px 16px;font-family:var(--font-ui);font-size:13px;font-weight:500;border-radius:var(--radius-lg);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.de-btn-primary{background:var(--accent-primary);border:1px solid var(--accent-primary);color:#fff}.de-btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.de-btn-primary:disabled{opacity:.6;cursor:not-allowed}.de-btn-secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.de-btn-secondary:hover{background:var(--bg-hover);border-color:var(--text-muted)}.de-btn-secondary:disabled{opacity:.5;cursor:not-allowed}.de-btn-danger{background:transparent;border:1px solid var(--accent-red);color:var(--accent-red)}.de-btn-danger:hover{background:var(--accent-red);color:#fff}.de-tab-form{display:flex;flex-direction:column;gap:1rem}.de-tab-form .form-group{display:flex;flex-direction:column;gap:.5rem}.de-tab-form .form-group>label{font-size:12px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.de-tab-form .form-group input[type=text],.de-tab-form .form-group input[type=number],.de-tab-form .form-group select{padding:8px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-ui);font-size:13px;transition:border-color var(--transition-fast)}.de-tab-form .form-group input:focus,.de-tab-form .form-group select:focus{outline:none;border-color:var(--border-focus)}.de-tab-form .form-group input::placeholder{color:var(--text-muted)}.de-tab-form .form-group select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23858585' d='M6 8L2 4h8z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}.de-tab-form .form-group select option{background:var(--bg-secondary);color:var(--text-primary)}.de-tab-form .form-hint{font-size:11px;color:var(--text-muted);margin-top:-2px}.de-tab-form .form-group-info{gap:.75rem}.de-tab-form .form-group-checkbox{gap:0}.de-tab-form .form-group-checkbox>label{display:flex;flex-wrap:wrap;align-items:center;gap:8px;cursor:pointer;padding:10px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:border-color .15s ease,background-color .15s ease}.de-tab-form .form-group-checkbox>label:hover{background:var(--bg-hover)}.de-tab-form .form-group-checkbox input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--accent-primary);cursor:pointer}.de-tab-form .checkbox-label{font-size:13px;font-weight:500;color:var(--text-primary);text-transform:none;letter-spacing:normal}.de-tab-form .checkbox-description{flex-basis:100%;font-size:12px;color:var(--text-secondary);margin-left:24px;text-transform:none;letter-spacing:normal;font-weight:400}.de-tab-form .form-section-divider{display:flex;align-items:center;gap:10px;margin:8px 0;font-size:11px;font-weight:600;text-transform:uppercase;color:var(--text-muted);letter-spacing:.5px}.de-tab-form .form-section-divider:before,.de-tab-form .form-section-divider:after{content:"";flex:1;height:1px;background:var(--border-subtle)}.de-tab-form .port-info{display:flex;flex-direction:column;gap:6px;padding:10px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md)}.de-tab-form .port-info-item{display:flex;align-items:center;gap:8px;font-size:13px}.de-tab-form .port-info-label{color:var(--text-secondary)}.de-tab-form .port-info-value{color:var(--text-primary);font-family:var(--font-mono)}.de-tab-form .port-info-value.highlight{color:var(--accent-blue);font-weight:600}@media(max-width:768px){.de-modal-overlay{align-items:stretch;justify-content:stretch}.de-modal{width:100%;max-width:100%!important;height:100%;max-height:100%;border-radius:0;border:none;animation:deMobileSlideUp .25s ease}@keyframes deMobileSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.de-modal-header{border-radius:0;padding:12px 16px;min-height:var(--mobile-header-height)}.de-modal-tabbed-body{flex-direction:column}.de-modal-tabs{flex-direction:row;flex-wrap:wrap;width:100%;padding:.5rem 1rem;border-right:none;border-bottom:1px solid var(--border-color);gap:4px}.de-modal-tab{padding:10px 14px;font-size:11px;border-left:none;border-bottom:2px solid transparent}.de-modal-tab.active{border-left:none;border-bottom-color:var(--accent-primary)}.de-modal-content{flex:1;padding:16px;-webkit-overflow-scrolling:touch}.de-modal-footer{padding:12px 16px;border-radius:0}.de-modal-close{width:40px;height:40px}.de-modal-close svg{width:20px;height:20px}.de-btn{min-height:var(--touch-target-min);padding:12px 20px;font-size:14px}.de-tab-form .form-group input[type=text],.de-tab-form .form-group input[type=number],.de-tab-form .form-group select{min-height:var(--touch-target-min);padding:12px;font-size:16px}.de-tab-form .form-group-checkbox>label{min-height:var(--touch-target-min);padding:12px 16px}.de-tab-form .form-group-checkbox input[type=checkbox]{width:20px;height:20px}}.de-drawer-inner{display:flex;flex-direction:column;height:100%;min-height:0}.de-drawer-inner .de-modal-tabbed-body{flex:1;min-height:0}.de-drawer-inner .de-modal-content{flex:1;min-height:0;overflow-y:auto}.de-drawer-inner .de-modal-footer{flex-shrink:0;border-radius:0}.de-accordion-body{flex:1;display:flex;flex-direction:column;gap:0}.de-accordion-section{border-bottom:1px solid var(--border-color)}.de-accordion-section:last-of-type{border-bottom:none}.de-accordion-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 1rem;background:transparent;border:none;color:var(--text-primary);font-family:var(--font-ui);font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;text-align:left;transition:background var(--transition-fast),color var(--transition-fast)}.de-accordion-header:hover{background:var(--bg-hover)}.de-accordion-section.expanded .de-accordion-header{color:var(--accent-primary);background:var(--bg-hover)}.de-accordion-chevron{width:16px;height:16px;flex-shrink:0;transition:transform .2s ease}.de-accordion-section.expanded .de-accordion-chevron{transform:rotate(180deg)}.de-accordion-content{display:none;padding:1.25rem 1rem;min-width:0}.de-accordion-section.expanded .de-accordion-content{display:block}.file-manager{display:flex;flex-direction:column;gap:12px;height:100%;min-height:0;padding:12px;background:var(--bg-primary);color:var(--text-primary)}.file-manager--picker{border:1px solid var(--border-color);border-radius:8px}.file-manager__header{display:flex;align-items:center;justify-content:space-between;gap:12px}.file-manager__header h2{margin:0;font-size:1.15rem}.file-manager__header-actions{display:flex;gap:8px;flex-wrap:wrap}.file-manager__breadcrumbs{display:flex;flex-wrap:wrap;gap:2px;padding:8px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-secondary)}.crumb{border:none;background:transparent;color:var(--accent-primary);cursor:pointer;font:inherit;padding:2px 4px}.crumb:hover{text-decoration:underline}.file-manager__dropzone{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px dashed var(--border-color);border-radius:8px;padding:12px;background:var(--bg-secondary)}.file-manager__dropzone.is-active{border-color:var(--accent-primary)}.file-manager__dropzone-title{font-weight:600}.file-manager__dropzone-subtitle{color:var(--text-secondary);font-size:.9rem}.file-manager__dropzone-actions{display:flex;align-items:center}.file-manager__picker-filter{font-size:.9rem;color:var(--text-secondary)}.file-manager__status{padding:10px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-secondary)}.file-manager__status--error{border-color:#b94a48}.file-manager__table-wrap{min-height:0;overflow:auto;border:1px solid var(--border-color);border-radius:8px}.file-manager__table{width:100%;border-collapse:collapse;font-size:.92rem}.file-manager__table th,.file-manager__table td{padding:8px;border-bottom:1px solid var(--border-color);text-align:left;vertical-align:middle}.file-manager__table th{position:sticky;top:0;background:var(--bg-tertiary);z-index:1}.file-link{border:none;background:transparent;color:var(--text-primary);text-align:left;cursor:pointer;font:inherit;padding:0}.file-link:hover{color:var(--accent-primary)}.file-manager__actions{display:flex;gap:6px;flex-wrap:wrap}.file-manager__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;overflow:auto;padding:2px}.file-card{border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary);padding:10px;display:flex;flex-direction:column;gap:8px}.file-card__preview{display:flex;align-items:center;justify-content:center;width:100%;height:110px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;overflow:hidden}.file-card__preview img{width:100%;height:100%;object-fit:cover}.file-card__name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-card__slug{font-size:.75rem;color:var(--accent-primary);font-family:var(--font-mono, monospace);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-manager__slug-cell{font-size:.75rem;color:var(--accent-primary);font-family:var(--font-mono, monospace);display:block}.file-card__meta{color:var(--text-secondary);font-size:.85rem}.file-card__actions{display:flex;gap:6px;flex-wrap:wrap}.file-picker-flyout-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;display:flex;align-items:center;justify-content:center;background:#0000008c;animation:fpf-fadeIn .15s ease}@keyframes fpf-fadeIn{0%{opacity:0}to{opacity:1}}.file-picker-flyout-panel{display:flex;flex-direction:column;width:min(640px,94vw);height:min(560px,80vh);max-height:94vh;border-radius:16px;background:var(--bg-secondary, #252526);border:1px solid var(--border-color, #404040);box-shadow:0 12px 40px #00000080;overflow:hidden;animation:fpf-slideUp .2s ease}@keyframes fpf-slideUp{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}.file-picker-flyout-header{padding:16px 16px 8px;text-align:center}.file-picker-flyout-label{font-size:14px;font-weight:600;color:var(--text-secondary, #9a9a9a);margin:0}.file-picker-flyout-body{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.file-picker-flyout-actions{display:grid;grid-template-columns:1fr;gap:8px;padding:8px 16px 16px}.file-picker-flyout-btn-cancel{height:56px;font-size:16px;font-weight:700;border:none;border-radius:10px;cursor:pointer;transition:background .1s ease,transform .08s ease;-webkit-user-select:none;user-select:none;touch-action:manipulation;background:var(--bg-tertiary, #2d2d2d);color:var(--text-secondary, #9a9a9a);border:1px solid var(--border-color, #404040)}.file-picker-flyout-btn-cancel:hover{background:var(--bg-hover, #343434)}.file-picker-flyout-btn-cancel:active{transform:scale(.97)}.color-picker-flyout-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;display:flex;align-items:center;justify-content:center;background:#0000008c;animation:cpf-fadeIn .15s ease}@keyframes cpf-fadeIn{0%{opacity:0}to{opacity:1}}.color-picker-flyout-panel{display:flex;flex-direction:column;width:280px;max-width:94vw;border-radius:16px;background:var(--bg-secondary, #252526);border:1px solid var(--border-color, #404040);box-shadow:0 12px 40px #00000080;overflow:hidden;animation:cpf-slideUp .2s ease}@keyframes cpf-slideUp{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}.color-picker-flyout-header{padding:16px 16px 8px;text-align:center}.color-picker-flyout-label{font-size:14px;font-weight:600;color:var(--text-secondary, #9a9a9a);margin:0}.color-picker-flyout-body{padding:12px 16px}.color-picker-flyout-body .react-colorful{width:100%;height:160px}.color-picker-flyout-body .react-colorful__saturation{border-radius:4px 4px 0 0}.color-picker-flyout-body .react-colorful__alpha{border-radius:0 0 4px 4px}.color-picker-flyout-body .color-picker-popover-input{margin-top:8px;width:100%;min-width:0;box-sizing:border-box}.color-picker-flyout-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px 16px 16px}.color-picker-flyout-btn-cancel,.color-picker-flyout-btn-confirm{height:56px;font-size:16px;font-weight:700;border:none;border-radius:10px;cursor:pointer;transition:background .1s ease,transform .08s ease;-webkit-user-select:none;user-select:none;touch-action:manipulation}.color-picker-flyout-btn-cancel{background:var(--bg-tertiary, #2d2d2d);color:var(--text-secondary, #9a9a9a);border:1px solid var(--border-color, #404040)}.color-picker-flyout-btn-cancel:hover{background:var(--bg-hover, #343434)}.color-picker-flyout-btn-cancel:active{transform:scale(.97)}.color-picker-flyout-btn-confirm{background:var(--accent-primary, #007acc);color:#fff}.color-picker-flyout-btn-confirm:hover{background:var(--accent-hover, #1a8ad4)}.color-picker-flyout-btn-confirm:active{transform:scale(.97)}.color-picker-popover{position:relative;display:inline-flex;align-items:center;gap:8px}.color-picker-popover.disabled{opacity:.5;pointer-events:none}.color-picker-popover-trigger{display:flex;align-items:center;gap:8px}.color-picker-popover-swatch{width:36px;height:36px;min-width:36px;min-height:36px;aspect-ratio:1;border-radius:var(--radius-md);border:1px solid var(--border-color);cursor:pointer;flex-shrink:0;padding:0;background:transparent}.color-picker-popover-swatch:hover{border-color:var(--text-muted)}.color-picker-popover-input{flex:1;min-width:90px;padding:6px 8px;font-family:var(--font-mono);font-size:12px;color:var(--text-primary, #d4d4d4);background:var(--bg-primary, #1e1e1e);border:1px solid var(--border-color, #404040);border-radius:var(--radius-md, 8px)}.color-picker-popover-input:focus{outline:none;border-color:var(--border-focus, #007acc)}.color-picker-popover-dropdown{position:absolute;top:100%;left:0;margin-top:8px;padding:12px;background:var(--bg-secondary, #252526);border:1px solid var(--border-color, #404040);border-radius:16px;box-shadow:0 12px 40px #00000080;z-index:1000}.color-picker-popover-dropdown .react-colorful{width:200px;height:160px}.color-picker-popover-dropdown .react-colorful__saturation{border-radius:4px 4px 0 0}.color-picker-popover-dropdown .react-colorful__alpha{border-radius:0 0 4px 4px}.color-picker-popover-dropdown .color-picker-popover-input{margin-top:8px;width:100%;min-width:0}.color-picker-popover--compact{display:inline-block}.color-picker-popover--compact .color-picker-popover-swatch{width:36px;height:36px;min-width:36px;min-height:36px;aspect-ratio:1}.color-picker-popover--compact .color-picker-popover-dropdown{left:0;top:100%}.metadata-schema-form{margin-top:12px;border:1px solid var(--border-color, #404040);border-radius:6px;background:var(--bg-secondary, #252526)}.metadata-schema-form-title{padding:8px 10px;font-size:12px;font-weight:600;color:var(--text-primary, #d4d4d4);border-bottom:1px solid var(--border-color, #404040)}.metadata-schema-group{border-bottom:1px solid var(--border-subtle, #3a3a3a)}.metadata-schema-group:last-child{border-bottom:none}.metadata-schema-group>summary{cursor:pointer;padding:8px 10px;font-size:12px;font-weight:600;color:var(--text-primary, #d4d4d4);-webkit-user-select:none;user-select:none}.metadata-schema-group>summary:hover{background:var(--bg-hover, #343434)}.metadata-schema-group-body{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;padding:0 10px 10px}.metadata-schema-field{display:flex;flex-direction:column;gap:6px}.metadata-schema-field label{font-size:12px;color:var(--text-primary, #d4d4d4)}.metadata-schema-field input[type=text],.metadata-schema-field input[type=number],.metadata-schema-field select{width:100%;min-height:30px;padding:6px 8px;border:1px solid var(--border-color, #404040);border-radius:4px;background:var(--bg-primary, #1e1e1e);color:var(--text-primary, #d4d4d4)}.metadata-schema-field input[type=range]{width:100%;accent-color:var(--accent-primary)}.metadata-schema-hint{font-size:11px;color:var(--text-secondary, #9a9a9a);line-height:1.3}.metadata-schema-field--checkbox{justify-content:center}.metadata-schema-checkbox-label{display:flex;align-items:center;gap:8px}.metadata-schema-checkbox-label input[type=checkbox]{margin:0;width:18px;height:18px;min-width:18px;min-height:18px;aspect-ratio:1;flex-shrink:0;accent-color:var(--accent-primary);cursor:pointer}.metadata-schema-color-control,.metadata-schema-color-default-row{display:flex;align-items:center;gap:8px}.metadata-schema-color-default-badge{display:inline-flex;align-items:center;min-height:20px;padding:0 6px;border:1px solid var(--border-subtle, #3a3a3a);border-radius:999px;font-size:11px;color:var(--text-secondary, #9a9a9a);background:var(--bg-primary, #1e1e1e)}.metadata-schema-color-default-reset{display:inline-flex;align-items:center;padding:4px 10px;font-size:12px;font-family:inherit;color:var(--accent-primary, #007acc);background:transparent;border:1px solid var(--border-subtle, #3a3a3a);border-radius:6px;cursor:pointer;transition:background .1s ease,border-color .1s ease}.metadata-schema-color-default-reset:hover{background:var(--bg-hover, #2a2d2e);border-color:var(--accent-primary, #007acc);color:var(--accent-hover, #1a8ad4)}.metadata-schema-color-default-swatch{width:16px;height:16px;min-width:16px;min-height:16px;aspect-ratio:1;flex-shrink:0;border-radius:3px;border:1px solid var(--border-color, #404040);background:#000}.metadata-schema-color-default-swatch--neutral{background:linear-gradient(45deg,rgba(255,255,255,.16) 25%,transparent 25%),linear-gradient(-45deg,rgba(255,255,255,.16) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(255,255,255,.16) 75%),linear-gradient(-45deg,transparent 75%,rgba(255,255,255,.16) 75%),var(--bg-tertiary, #2d2d2d);background-size:8px 8px;background-position:0 0,0 4px,4px -4px,-4px 0}.metadata-schema-file-control{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center}.metadata-schema-file-button{min-height:30px;padding:0 10px;border:1px solid var(--border-color, #404040);border-radius:4px;background:var(--bg-tertiary, #2d2d2d);color:var(--text-primary, #d4d4d4);cursor:pointer;white-space:nowrap}.metadata-schema-file-button:disabled{opacity:.55;cursor:not-allowed}.metadata-schema-file-button:not(:disabled):hover{background:var(--bg-hover, #343434)}.metadata-schema-range-control{display:grid;grid-template-columns:1fr 86px;gap:8px;align-items:center}.metadata-schema-font-size-control{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.metadata-schema-font-size-control span{font-size:12px;color:var(--text-secondary, #9a9a9a)}.metadata-schema-align-buttons{display:flex;gap:6px}.metadata-schema-align-buttons button{min-width:34px;min-height:30px;border:1px solid var(--border-color, #404040);border-radius:4px;background:var(--bg-tertiary, #2d2d2d);color:var(--text-primary, #d4d4d4);cursor:pointer}.metadata-schema-align-buttons button.active{border-color:var(--accent-primary, #007acc);color:var(--accent-primary, #007acc)}.metadata-schema-preview{min-height:28px;display:flex;align-items:center;padding:6px 8px;border:1px dashed var(--border-subtle, #3a3a3a);border-radius:4px;font-size:12px;color:var(--text-secondary, #9a9a9a)}.metadata-schema-font-select{position:relative;width:100%}.metadata-schema-font-select-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:30px;padding:6px 8px;border:1px solid var(--border-color, #404040);border-radius:4px;background:var(--bg-primary, #1e1e1e);color:var(--text-primary, #d4d4d4);font-size:12px;text-align:left;cursor:pointer;gap:8px}.metadata-schema-font-select-trigger:hover{border-color:var(--border-focus, #007acc)}.metadata-schema-font-select.is-open .metadata-schema-font-select-trigger{border-color:var(--border-focus, #007acc);outline:none}.metadata-schema-font-select-value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.metadata-schema-font-select-chevron{width:14px;height:14px;flex-shrink:0;color:var(--text-muted, #666);transition:transform .2s ease}.metadata-schema-font-select.is-open .metadata-schema-font-select-chevron{transform:rotate(180deg)}.metadata-schema-font-select-list{position:absolute;top:100%;left:0;right:0;margin:2px 0 0;padding:4px 0;max-height:240px;overflow-y:auto;list-style:none;background:var(--bg-secondary, #252526);border:1px solid var(--border-color, #404040);border-radius:4px;box-shadow:0 4px 12px #0006;z-index:1000}.metadata-schema-font-select-option{padding:6px 10px;font-size:12px;color:var(--text-primary, #d4d4d4);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metadata-schema-font-select-option:hover{background:var(--bg-hover, #343434)}.metadata-schema-font-select-option[aria-selected=true]{background:var(--accent-primary, #007acc);color:#fff}.metadata-schema-font-select-option[aria-selected=true]:hover{background:var(--accent-hover, #1a8ad4)}.metadata-schema-array-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:6px}.metadata-schema-array-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-primary, #d4d4d4)}.metadata-schema-field--full{grid-column:1 / -1}.metadata-schema-fields-flat{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.metadata-schema-field-label-row{display:flex;align-items:center;justify-content:space-between;gap:4px}.metadata-schema-field-label-row label{flex:1;min-width:0}.metadata-schema-field-remove{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:none;border-radius:3px;background:transparent;color:var(--text-muted, #666);cursor:pointer;font-size:15px;line-height:1;flex-shrink:0;opacity:0;transition:opacity .15s,color .15s,background .15s}.metadata-schema-field--removable:hover .metadata-schema-field-remove,.metadata-schema-field-remove:focus-visible{opacity:1}.metadata-schema-field-remove:hover{color:var(--accent-red, #f14c4c);background:#f14c4c1a}.metadata-schema-field--checkbox.metadata-schema-field--removable{display:flex;align-items:center;gap:4px}.metadata-schema-field--checkbox.metadata-schema-field--removable .metadata-schema-field-remove{margin-left:auto}.metadata-schema-textarea{width:100%;min-height:120px;padding:8px 12px;background:var(--bg-primary, #1e1e1e);border:1px solid var(--border-color, #404040);border-radius:4px;color:var(--text-primary, #d4d4d4);font-family:var(--font-mono, "Consolas", monospace);font-size:12px;resize:vertical;box-sizing:border-box}.metadata-schema-textarea:focus{outline:none;border-color:var(--border-focus, #007acc)}.metadata-schema-textarea--compact{min-height:60px}.metadata-schema-editable-list{display:flex;flex-direction:column;gap:4px}.metadata-schema-editable-list-row{display:flex;align-items:center;gap:6px}.metadata-schema-editable-list-row input{flex:1;min-height:28px;padding:4px 8px;border:1px solid var(--border-color, #404040);border-radius:4px;background:var(--bg-primary, #1e1e1e);color:var(--text-primary, #d4d4d4);font-size:12px}.metadata-schema-editable-list-remove{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:1px solid var(--border-color, #404040);border-radius:4px;background:var(--bg-tertiary, #2d2d2d);color:var(--text-secondary, #9a9a9a);cursor:pointer;font-size:14px;line-height:1;flex-shrink:0}.metadata-schema-editable-list-remove:hover{background:#5a2020;border-color:#a44;color:#f66}.metadata-schema-editable-list-add{align-self:flex-start;margin-top:2px;padding:4px 12px;border:1px dashed var(--border-color, #404040);border-radius:4px;background:transparent;color:var(--accent-primary, #007acc);cursor:pointer;font-size:12px}.metadata-schema-editable-list-add:hover{background:var(--bg-hover, #343434);border-style:solid}.form-label-row{display:flex;align-items:baseline;gap:.35rem;flex-wrap:wrap}.form-label-row>label{flex-shrink:0;font-size:12px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.form-label-row>label:after{content:":"}.form-label-row .form-hint{font-size:12px;font-weight:400;color:var(--text-muted);text-transform:none;letter-spacing:normal;margin-top:0}.global-variable-form .form-group input[type=number],.alarm-form .form-group input[type=number],.chart-form .form-group input[type=number],.toggle-switch-form .form-group input[type=number],.button-form .form-group input[type=number],.timer-form .form-group input[type=number],.script-element-form .form-group input[type=number],.profile-form .form-group input[type=number],.owtemp-form .form-group input[type=number],.analog-in-form .form-group input[type=number],.counter-form .form-group input[type=number],.pwm-out-form .form-group input[type=number],.spi-sensor-form .form-group input[type=number],.deadband-form .form-group input[type=number],.duty-cycle-form .form-group input[type=number],.digital-out-form .form-group input[type=number],.pid-form .form-group input[type=number],.hydrometer-form .form-group input[type=number],.hysteresis-form .form-group input[type=number],.generic-form .form-group input[type=number],.stateful-form .form-group input[type=number],.digital-in-form .form-group input[type=number],.de-tab-form .form-group input[type=number],.layout-section input[type=number]{-moz-appearance:textfield}.global-variable-form .form-group input[type=number]::-webkit-outer-spin-button,.global-variable-form .form-group input[type=number]::-webkit-inner-spin-button,.alarm-form .form-group input[type=number]::-webkit-outer-spin-button,.alarm-form .form-group input[type=number]::-webkit-inner-spin-button,.chart-form .form-group input[type=number]::-webkit-outer-spin-button,.chart-form .form-group input[type=number]::-webkit-inner-spin-button,.toggle-switch-form .form-group input[type=number]::-webkit-outer-spin-button,.toggle-switch-form .form-group input[type=number]::-webkit-inner-spin-button,.button-form .form-group input[type=number]::-webkit-outer-spin-button,.button-form .form-group input[type=number]::-webkit-inner-spin-button,.timer-form .form-group input[type=number]::-webkit-outer-spin-button,.timer-form .form-group input[type=number]::-webkit-inner-spin-button,.script-element-form .form-group input[type=number]::-webkit-outer-spin-button,.script-element-form .form-group input[type=number]::-webkit-inner-spin-button,.profile-form .form-group input[type=number]::-webkit-outer-spin-button,.profile-form .form-group input[type=number]::-webkit-inner-spin-button,.owtemp-form .form-group input[type=number]::-webkit-outer-spin-button,.owtemp-form .form-group input[type=number]::-webkit-inner-spin-button,.analog-in-form .form-group input[type=number]::-webkit-outer-spin-button,.analog-in-form .form-group input[type=number]::-webkit-inner-spin-button,.counter-form .form-group input[type=number]::-webkit-outer-spin-button,.counter-form .form-group input[type=number]::-webkit-inner-spin-button,.pwm-out-form .form-group input[type=number]::-webkit-outer-spin-button,.pwm-out-form .form-group input[type=number]::-webkit-inner-spin-button,.spi-sensor-form .form-group input[type=number]::-webkit-outer-spin-button,.spi-sensor-form .form-group input[type=number]::-webkit-inner-spin-button,.deadband-form .form-group input[type=number]::-webkit-outer-spin-button,.deadband-form .form-group input[type=number]::-webkit-inner-spin-button,.duty-cycle-form .form-group input[type=number]::-webkit-outer-spin-button,.duty-cycle-form .form-group input[type=number]::-webkit-inner-spin-button,.digital-out-form .form-group input[type=number]::-webkit-outer-spin-button,.digital-out-form .form-group input[type=number]::-webkit-inner-spin-button,.pid-form .form-group input[type=number]::-webkit-outer-spin-button,.pid-form .form-group input[type=number]::-webkit-inner-spin-button,.hydrometer-form .form-group input[type=number]::-webkit-outer-spin-button,.hydrometer-form .form-group input[type=number]::-webkit-inner-spin-button,.hysteresis-form .form-group input[type=number]::-webkit-outer-spin-button,.hysteresis-form .form-group input[type=number]::-webkit-inner-spin-button,.generic-form .form-group input[type=number]::-webkit-outer-spin-button,.generic-form .form-group input[type=number]::-webkit-inner-spin-button,.stateful-form .form-group input[type=number]::-webkit-outer-spin-button,.stateful-form .form-group input[type=number]::-webkit-inner-spin-button,.digital-in-form .form-group input[type=number]::-webkit-outer-spin-button,.digital-in-form .form-group input[type=number]::-webkit-inner-spin-button,.de-tab-form .form-group input[type=number]::-webkit-outer-spin-button,.de-tab-form .form-group input[type=number]::-webkit-inner-spin-button,.layout-section input[type=number]::-webkit-outer-spin-button,.layout-section input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.global-variable-form .form-group select,.alarm-form .form-group select,.chart-form .form-group select,.toggle-switch-form .form-group select,.button-form .form-group select,.timer-form .form-group select,.script-element-form .form-group select,.profile-form .form-group select,.owtemp-form .form-group select,.analog-in-form .form-group select,.counter-form .form-group select,.pwm-out-form .form-group select,.spi-sensor-form .form-group select,.deadband-form .form-group select,.duty-cycle-form .form-group select,.digital-out-form .form-group select,.pid-form .form-group select,.hydrometer-form .form-group select,.hysteresis-form .form-group select,.generic-form .form-group select,.stateful-form .form-group select,.digital-in-form .form-group select{padding:8px 32px 8px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-ui);font-size:13px;cursor:pointer;transition:border-color .15s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23858585' d='M6 8L2 4h8z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.global-variable-form .form-group select:focus,.alarm-form .form-group select:focus,.chart-form .form-group select:focus,.toggle-switch-form .form-group select:focus,.button-form .form-group select:focus,.timer-form .form-group select:focus,.script-element-form .form-group select:focus,.profile-form .form-group select:focus,.owtemp-form .form-group select:focus,.analog-in-form .form-group select:focus,.counter-form .form-group select:focus,.pwm-out-form .form-group select:focus,.spi-sensor-form .form-group select:focus,.deadband-form .form-group select:focus,.duty-cycle-form .form-group select:focus,.digital-out-form .form-group select:focus,.pid-form .form-group select:focus,.hydrometer-form .form-group select:focus,.hysteresis-form .form-group select:focus,.generic-form .form-group select:focus,.stateful-form .form-group select:focus,.digital-in-form .form-group select:focus{outline:none;border-color:var(--border-focus)}.global-variable-form .form-group select option,.alarm-form .form-group select option,.chart-form .form-group select option,.toggle-switch-form .form-group select option,.button-form .form-group select option,.timer-form .form-group select option,.script-element-form .form-group select option,.profile-form .form-group select option,.owtemp-form .form-group select option,.analog-in-form .form-group select option,.counter-form .form-group select option,.pwm-out-form .form-group select option,.spi-sensor-form .form-group select option,.deadband-form .form-group select option,.duty-cycle-form .form-group select option,.digital-out-form .form-group select option,.pid-form .form-group select option,.hydrometer-form .form-group select option,.hysteresis-form .form-group select option,.generic-form .form-group select option,.stateful-form .form-group select option,.digital-in-form .form-group select option{background:var(--bg-secondary);color:var(--text-primary);padding:8px}.form-section-divider{display:flex;align-items:center;gap:10px;margin:16px 0 8px;font-size:11px;font-weight:600;text-transform:uppercase;color:var(--text-muted);letter-spacing:.5px}.form-section-divider:before,.form-section-divider:after{content:"";flex:1;height:1px;background:var(--border-subtle)}.modal-tabs{display:flex;gap:0;border-bottom:1px solid var(--border-color, #333);margin-bottom:12px}.modal-tabs button{padding:8px 16px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-secondary, #888);cursor:pointer;font-size:13px}.modal-tabs button.active{color:var(--text-primary, #fff);border-bottom-color:var(--accent-primary, #4ec9b0)}.tab-content{display:flex;flex-direction:column;gap:1.25rem;overflow-y:auto}.appearance-tab .template-select-with-reload{display:flex;align-items:center;gap:8px;position:relative}.appearance-tab .template-select-with-reload select,.appearance-tab .template-select-trigger{flex:1;min-width:0}.appearance-tab .template-select-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;font-size:13px;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;text-align:left;transition:border-color var(--transition-fast)}.appearance-tab .template-select-trigger:hover{border-color:var(--text-muted)}.appearance-tab .template-select-value{display:flex;align-items:center;gap:6px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.appearance-tab .template-select-chevron{width:16px;height:16px;flex-shrink:0;color:var(--text-muted);transition:transform .2s}.appearance-tab .template-select-with-reload[data-open] .template-select-chevron{transform:rotate(180deg)}.appearance-tab .template-select-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;margin:0;padding:4px 0;list-style:none;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:0 4px 12px #00000026;z-index:100;max-height:240px;overflow-y:auto}.appearance-tab .template-select-option{display:flex;align-items:center;gap:6px;padding:6px 10px;font-size:13px;cursor:pointer;color:var(--text-primary);transition:background var(--transition-fast)}.appearance-tab .template-select-option:hover,.appearance-tab .template-select-option--selected{background:var(--bg-hover)}.appearance-tab .template-badge-beta{display:inline-flex;align-items:center;padding:1px 6px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;background:#f59e0b;color:#000;border-radius:3px;flex-shrink:0}.appearance-tab .template-reload-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast);flex-shrink:0}.appearance-tab .template-reload-btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--text-muted);color:var(--text-primary)}.appearance-tab .template-reload-btn:disabled{opacity:.6;cursor:not-allowed}.appearance-tab .template-reload-btn svg{width:16px;height:16px}.prop-editor-toolbar{display:flex;align-items:center;gap:6px;margin-bottom:12px}.prop-editor-action-btn{padding:4px 10px;border:1px solid var(--border-color, #404040);border-radius:4px;background:var(--bg-tertiary, #2d2d2d);color:var(--accent-primary, #007acc);font-size:12px;cursor:pointer;white-space:nowrap}.prop-editor-action-btn:hover{background:var(--bg-hover, #343434)}.prop-editor-empty{display:flex;flex-direction:column;align-items:center;gap:10px;padding:24px 16px;color:var(--text-secondary, #9a9a9a);font-size:13px}.prop-editor-empty p{margin:0}.prop-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:#00000080}.prop-modal{width:420px;max-width:90vw;max-height:80vh;display:flex;flex-direction:column;border-radius:8px;border:1px solid var(--border-color, #404040);background:var(--bg-secondary, #252526);box-shadow:0 8px 32px #00000080}.prop-modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border-color, #404040)}.prop-modal-title{font-size:14px;font-weight:600;color:var(--text-primary, #d4d4d4)}.prop-modal-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:4px;background:transparent;color:var(--text-secondary, #9a9a9a);cursor:pointer;font-size:18px}.prop-modal-close:hover{background:var(--bg-hover, #343434);color:var(--text-primary, #d4d4d4)}.prop-modal-body{flex:1 1 auto;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.prop-modal-body .metadata-schema-field input[type=text],.prop-modal-body .metadata-schema-field input[type=number],.prop-modal-body .metadata-schema-field input[type=date],.prop-modal-body .metadata-schema-field select{width:100%;min-height:30px;padding:6px 8px;border:1px solid var(--border-color, #404040);border-radius:4px;background:var(--bg-primary, #1e1e1e);color:var(--text-primary, #d4d4d4);font-size:13px;box-sizing:border-box}.prop-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--border-color, #404040)}.prop-modal-error{font-size:12px;color:var(--accent-red, #f14c4c);padding:4px 0}.prop-modal-empty{color:var(--text-secondary, #9a9a9a);font-size:13px;text-align:center;padding:12px 0;margin:0}.confirm-delete-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:1100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.confirm-delete-modal{background-color:var(--bg-primary);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:90%;max-width:420px;overflow:hidden}.confirm-delete-header{display:flex;align-items:center;gap:12px;padding:20px 20px 16px;border-bottom:1px solid var(--border-color);background-color:var(--bg-secondary)}.confirm-delete-icon{width:24px;height:24px;color:var(--accent-red);flex-shrink:0}.confirm-delete-title{margin:0;font-size:16px;font-weight:600;color:var(--text-primary)}.confirm-delete-content{padding:20px}.confirm-delete-message{margin:0;font-size:14px;line-height:1.5;color:var(--text-secondary)}.confirm-delete-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:16px 20px 20px;border-top:1px solid var(--border-color);background-color:var(--bg-secondary)}.confirm-delete-btn{display:flex;align-items:center;justify-content:center;padding:8px 18px;border-radius:var(--radius-lg);font-size:13px;font-weight:500;font-family:var(--font-ui);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast);border:1px solid transparent}.confirm-delete-btn-cancel{background-color:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-color)}.confirm-delete-btn-cancel:hover{background-color:var(--bg-hover)}.confirm-delete-btn-cancel:active{background-color:var(--bg-active)}.confirm-delete-btn-delete{background-color:var(--accent-red);color:#fff;border-color:var(--accent-red)}.confirm-delete-btn-delete:hover{background-color:#c93a3a;border-color:#c93a3a}.confirm-delete-btn-delete:active{background-color:#a82e2e;border-color:#a82e2e}.global-variable-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;animation:gvFadeIn .15s ease}body:has(.global-variable-modal-overlay) iframe{pointer-events:none!important}@keyframes gvFadeIn{0%{opacity:0}to{opacity:1}}.global-variable-modal{background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:90%;max-width:480px;max-height:90vh;display:flex;flex-direction:column;animation:gvSlideIn .15s ease}@keyframes gvSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.global-variable-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:8px 8px 0 0}.global-variable-modal-title{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-size:1rem;font-weight:500}.global-variable-modal-icon{width:18px;height:18px;color:var(--accent-green)}.global-variable-modal-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.global-variable-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.global-variable-modal-close svg{width:16px;height:16px}.global-variable-modal-content{padding:1.25rem;overflow-y:auto}.global-variable-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:var(--text-secondary)}.global-variable-loading .loading-spinner{width:24px;height:24px;border:2px solid var(--bg-tertiary);border-top-color:var(--accent-primary);border-radius:50%;animation:gvSpin .8s linear infinite;margin-bottom:.75rem}@keyframes gvSpin{to{transform:rotate(360deg)}}.global-variable-form{display:flex;flex-direction:column;gap:1rem}.global-variable-form .tab-content{display:flex;flex-direction:column;gap:1.25rem}.global-variable-form .form-group{display:flex;flex-direction:column;gap:.5rem}.global-variable-form .form-label-row{display:flex;align-items:baseline;gap:.35rem;flex-wrap:wrap}.global-variable-form .form-label-row>label{flex-shrink:0;font-size:12px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.global-variable-form .form-label-row>label:after{content:":"}.global-variable-form .form-label-row .form-hint{font-size:12px;font-weight:400;color:var(--text-muted);text-transform:none;letter-spacing:normal;margin-top:0}.global-variable-form .form-group>label{font-size:12px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.global-variable-form .form-group input[type=text],.global-variable-form .form-group input[type=number],.global-variable-form .form-group input[type=datetime-local]{padding:8px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-ui);font-size:13px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.global-variable-form .form-group input[type=text]:focus,.global-variable-form .form-group input[type=number]:focus,.global-variable-form .form-group input[type=datetime-local]:focus{outline:none;border-color:var(--border-focus)}.global-variable-form .form-group input[type=text]::placeholder,.global-variable-form .form-group input[type=number]::placeholder{color:var(--text-muted)}.global-variable-form .form-group input[type=datetime-local]::-webkit-calendar-picker-indicator{filter:invert(.7);cursor:pointer}.global-variable-form .form-group .form-hint{font-size:11px;color:var(--text-muted);margin-top:-2px}.global-variable-form .form-label-row .form-hint{margin-top:0}.global-variable-form .form-group-checkbox{gap:0}.global-variable-form .form-group-checkbox>label{display:flex;flex-wrap:wrap;align-items:center;gap:8px;cursor:pointer;padding:10px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:border-color .15s ease,background-color .15s ease}.global-variable-form .form-group-checkbox>label:hover{background:var(--bg-hover)}.global-variable-form .form-group-checkbox input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--accent-primary);cursor:pointer}.global-variable-form .checkbox-label{font-size:13px;font-weight:500;color:var(--text-primary);text-transform:none;letter-spacing:normal}.global-variable-form .checkbox-description{flex-basis:100%;font-size:12px;color:var(--text-secondary);margin-left:24px;text-transform:none;letter-spacing:normal;font-weight:400}.global-variable-form .form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.global-variable-form .btn{padding:8px 16px;font-family:var(--font-ui);font-size:13px;font-weight:500;border-radius:var(--radius-lg);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.global-variable-form .btn-secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.global-variable-form .btn-secondary:hover{background:var(--bg-hover);border-color:var(--text-muted)}.global-variable-form .btn-primary{background:var(--accent-primary);border:1px solid var(--accent-primary);color:#fff}.global-variable-form .btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.global-variable-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.global-variable-modal-overlay{align-items:stretch;justify-content:stretch}.global-variable-modal{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0;border:none;animation:gvMobileSlideUp .25s ease}@keyframes gvMobileSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.global-variable-modal-header{border-radius:0;padding:12px 16px;min-height:var(--mobile-header-height)}.global-variable-modal-title{font-size:16px}.global-variable-modal-close{width:40px;height:40px}.global-variable-modal-close svg{width:20px;height:20px}.global-variable-modal-content{flex:1;padding:16px;overflow-y:auto;-webkit-overflow-scrolling:touch}.global-variable-form .form-group input[type=text],.global-variable-form .form-group input[type=number],.global-variable-form .form-group input[type=datetime-local],.global-variable-form .form-group select{min-height:var(--touch-target-min);padding:12px;font-size:16px}.global-variable-form .form-group>label{font-size:13px;margin-bottom:8px}.global-variable-form .form-group-checkbox>label{min-height:var(--touch-target-min);padding:12px 16px}.global-variable-form .form-group-checkbox input[type=checkbox]{width:20px;height:20px}.global-variable-form .btn{min-height:var(--touch-target-min);padding:12px 20px;font-size:14px}.global-variable-form .form-actions{padding-top:16px;gap:12px}}.metadata-form-section{margin-top:4px;padding:8px 0 0}.metadata-form-section .form-group{margin-bottom:10px}.global-variable-form input[type=color]{width:36px;height:36px;min-width:36px;min-height:36px;aspect-ratio:1;flex-shrink:0;padding:2px;border:1px solid var(--border-color);border-radius:var(--radius-md, 6px);background:var(--bg-primary);cursor:pointer}.toggle-switch-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;animation:tsFadeIn .15s ease}@keyframes tsFadeIn{0%{opacity:0}to{opacity:1}}.toggle-switch-modal{background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:90%;max-width:420px;max-height:90vh;display:flex;flex-direction:column;animation:tsSlideIn .15s ease}@keyframes tsSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.toggle-switch-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:var(--radius-xl) var(--radius-xl) 0 0}.toggle-switch-modal-title{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-size:1rem;font-weight:500}.toggle-switch-modal-icon{width:18px;height:18px;color:var(--accent-green)}.toggle-switch-modal-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.toggle-switch-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.toggle-switch-modal-close svg{width:16px;height:16px}.toggle-switch-modal-content{padding:1.25rem;overflow-y:auto}.toggle-switch-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:var(--text-secondary)}.toggle-switch-loading .loading-spinner{width:24px;height:24px;border:2px solid var(--bg-tertiary);border-top-color:var(--accent-primary);border-radius:50%;animation:tsSpin .8s linear infinite;margin-bottom:.75rem}@keyframes tsSpin{to{transform:rotate(360deg)}}.toggle-switch-form{display:flex;flex-direction:column;gap:1rem}.toggle-switch-form .form-group{display:flex;flex-direction:column;gap:.5rem}.toggle-switch-form .form-group>label{font-size:12px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.toggle-switch-form .form-group input[type=text],.toggle-switch-form .form-group input[type=number]{padding:8px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-ui);font-size:13px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.toggle-switch-form .form-group input[type=text]:focus,.toggle-switch-form .form-group input[type=number]:focus{outline:none;border-color:var(--border-focus)}.toggle-switch-form .form-group input[type=text]::placeholder,.toggle-switch-form .form-group input[type=number]::placeholder{color:var(--text-muted)}.toggle-switch-form .form-hint{font-size:11px;color:var(--text-muted);margin-top:-2px}.toggle-switch-form .form-group-checkbox{gap:0}.toggle-switch-form .form-group-checkbox>label{display:flex;flex-wrap:wrap;align-items:center;gap:8px;cursor:pointer;padding:10px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:border-color .15s ease,background-color .15s ease}.toggle-switch-form .form-group-checkbox>label:hover{background:var(--bg-hover)}.toggle-switch-form .form-group-checkbox input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--accent-primary);cursor:pointer}.toggle-switch-form .checkbox-label{font-size:13px;font-weight:500;color:var(--text-primary);text-transform:none;letter-spacing:normal}.toggle-switch-form .checkbox-description{flex-basis:100%;font-size:12px;color:var(--text-secondary);margin-left:24px;text-transform:none;letter-spacing:normal;font-weight:400}.toggle-switch-form .form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.toggle-switch-form .btn{padding:8px 16px;font-family:var(--font-ui);font-size:13px;font-weight:500;border-radius:var(--radius-lg);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.toggle-switch-form .btn-secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.toggle-switch-form .btn-secondary:hover{background:var(--bg-hover);border-color:var(--text-muted)}.toggle-switch-form .btn-primary{background:var(--accent-primary);border:1px solid var(--accent-primary);color:#fff}.toggle-switch-form .btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.toggle-switch-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.toggle-switch-modal-overlay{align-items:stretch;justify-content:stretch}.toggle-switch-modal{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0;border:none;animation:tsMobileSlideUp .25s ease}@keyframes tsMobileSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.toggle-switch-modal-header{border-radius:0;padding:12px 16px;min-height:var(--mobile-header-height)}.toggle-switch-modal-title{font-size:16px}.toggle-switch-modal-close{width:40px;height:40px}.toggle-switch-modal-close svg{width:20px;height:20px}.toggle-switch-modal-content{flex:1;padding:16px;overflow-y:auto;-webkit-overflow-scrolling:touch}.toggle-switch-form .form-group input[type=text],.toggle-switch-form .form-group input[type=number]{min-height:var(--touch-target-min);padding:12px;font-size:16px}.toggle-switch-form .form-group>label{font-size:13px;margin-bottom:8px}.toggle-switch-form .form-group-checkbox>label{min-height:var(--touch-target-min);padding:12px 16px}.toggle-switch-form .form-group-checkbox input[type=checkbox]{width:20px;height:20px}.toggle-switch-form .btn{min-height:var(--touch-target-min);padding:12px 20px;font-size:14px}.toggle-switch-form .form-actions{padding-top:16px;gap:12px}}.button-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;animation:btnFadeIn .15s ease}@keyframes btnFadeIn{0%{opacity:0}to{opacity:1}}.button-modal{background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:90%;max-width:420px;max-height:90vh;display:flex;flex-direction:column;animation:btnSlideIn .15s ease}@keyframes btnSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.button-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:8px 8px 0 0}.button-modal-title{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-size:1rem;font-weight:500}.button-modal-icon{width:18px;height:18px;color:var(--accent-purple)}.button-modal-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;transition:background .15s ease,color .15s ease}.button-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.button-modal-close svg{width:16px;height:16px}.button-modal-content{padding:1.25rem;overflow-y:auto}.button-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:var(--text-secondary)}.button-loading .loading-spinner{width:24px;height:24px;border:2px solid var(--bg-tertiary);border-top-color:var(--accent-primary);border-radius:50%;animation:btnSpin .8s linear infinite;margin-bottom:.75rem}@keyframes btnSpin{to{transform:rotate(360deg)}}.button-form{display:flex;flex-direction:column;gap:1rem}.button-form .form-group{display:flex;flex-direction:column;gap:.5rem}.button-form .form-group>label{font-size:12px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.button-form .form-group input[type=text],.button-form .form-group input[type=number]{padding:8px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-ui);font-size:13px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.button-form .form-group input[type=text]:focus,.button-form .form-group input[type=number]:focus{outline:none;border-color:var(--border-focus)}.button-form .form-group input[type=text]::placeholder,.button-form .form-group input[type=number]::placeholder{color:var(--text-muted)}.button-form .form-hint{font-size:11px;color:var(--text-muted);margin-top:-2px}.button-form .form-group-checkbox{gap:0}.button-form .form-group-checkbox>label{display:flex;flex-wrap:wrap;align-items:center;gap:8px;cursor:pointer;padding:10px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:border-color .15s ease,background-color .15s ease}.button-form .form-group-checkbox>label:hover{background:var(--bg-hover)}.button-form .form-group-checkbox input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--accent-primary);cursor:pointer}.button-form .checkbox-label{font-size:13px;font-weight:500;color:var(--text-primary);text-transform:none;letter-spacing:normal}.button-form .checkbox-description{flex-basis:100%;font-size:12px;color:var(--text-secondary);margin-left:24px;text-transform:none;letter-spacing:normal;font-weight:400}.button-form .form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.button-form .btn{padding:8px 16px;font-family:var(--font-ui);font-size:13px;font-weight:500;border-radius:var(--radius-md);cursor:pointer;transition:background-color .15s ease,border-color .15s ease}.button-form .btn-secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.button-form .btn-secondary:hover{background:var(--bg-hover);border-color:var(--text-muted)}.button-form .btn-primary{background:var(--accent-primary);border:1px solid var(--accent-primary);color:#fff}.button-form .btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.button-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.button-modal-overlay{align-items:stretch;justify-content:stretch}.button-modal{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0;border:none;animation:btnMobileSlideUp .25s ease}@keyframes btnMobileSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.button-modal-header{border-radius:0;padding:12px 16px;min-height:var(--mobile-header-height)}.button-modal-title{font-size:16px}.button-modal-close{width:40px;height:40px}.button-modal-close svg{width:20px;height:20px}.button-modal-content{flex:1;padding:16px;overflow-y:auto;-webkit-overflow-scrolling:touch}.button-form .form-group input[type=text],.button-form .form-group input[type=number]{min-height:var(--touch-target-min);padding:12px;font-size:16px}.button-form .form-group>label{font-size:13px;margin-bottom:8px}.button-form .form-group-checkbox>label{min-height:var(--touch-target-min);padding:12px 16px}.button-form .form-group-checkbox input[type=checkbox]{width:20px;height:20px}.button-form .btn{min-height:var(--touch-target-min);padding:12px 20px;font-size:14px}.button-form .form-actions{padding-top:16px;gap:12px}}.generic-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;animation:genFadeIn .15s ease}@keyframes genFadeIn{0%{opacity:0}to{opacity:1}}.generic-modal{background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:90%;max-width:420px;max-height:90vh;display:flex;flex-direction:column;animation:genSlideIn .15s ease}@keyframes genSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.generic-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:var(--radius-xl) var(--radius-xl) 0 0}.generic-modal-title{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-size:1rem;font-weight:500}.generic-modal-icon{width:18px;height:18px;color:var(--accent-primary)}.generic-modal-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.generic-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.generic-modal-close svg{width:16px;height:16px}.generic-modal-content{padding:1.25rem;overflow-y:auto}.generic-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:var(--text-secondary)}.generic-loading .loading-spinner{width:24px;height:24px;border:2px solid var(--bg-tertiary);border-top-color:var(--accent-primary);border-radius:50%;animation:genSpin .8s linear infinite;margin-bottom:.75rem}@keyframes genSpin{to{transform:rotate(360deg)}}.generic-form{display:flex;flex-direction:column;gap:1rem}.generic-form .tab-content{display:flex;flex-direction:column;gap:1.25rem}.generic-form .form-group{display:flex;flex-direction:column;gap:.5rem}.generic-form .form-group>label{font-size:12px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.generic-form .form-group input[type=text],.generic-form .form-group input[type=number]{padding:8px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-ui);font-size:13px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.generic-form .form-group input[type=text]:focus,.generic-form .form-group input[type=number]:focus{outline:none;border-color:var(--border-focus)}.generic-form .form-group input[type=text]::placeholder,.generic-form .form-group input[type=number]::placeholder{color:var(--text-muted)}.generic-form .form-hint{font-size:11px;color:var(--text-muted);margin-top:-2px}.generic-form .form-group-checkbox{gap:0}.generic-form .form-group-checkbox>label{display:flex;flex-wrap:wrap;align-items:center;gap:8px;cursor:pointer;padding:10px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:border-color .15s ease,background-color .15s ease}.generic-form .form-group-checkbox>label:hover{background:var(--bg-hover)}.generic-form .form-group-checkbox input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--accent-primary);cursor:pointer}.generic-form .checkbox-label{font-size:13px;font-weight:500;color:var(--text-primary);text-transform:none;letter-spacing:normal}.generic-form .checkbox-description{flex-basis:100%;font-size:12px;color:var(--text-secondary);margin-left:24px;text-transform:none;letter-spacing:normal;font-weight:400}.generic-form .form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.generic-form .btn{padding:8px 16px;font-family:var(--font-ui);font-size:13px;font-weight:500;border-radius:var(--radius-lg);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.generic-form .btn-secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.generic-form .btn-secondary:hover{background:var(--bg-hover);border-color:var(--text-muted)}.generic-form .btn-primary{background:var(--accent-primary);border:1px solid var(--accent-primary);color:#fff}.generic-form .btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.generic-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}.timer-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;animation:timerFadeIn .15s ease}@keyframes timerFadeIn{0%{opacity:0}to{opacity:1}}.timer-modal{background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:90%;max-width:420px;max-height:90vh;display:flex;flex-direction:column;animation:timerSlideIn .15s ease}@keyframes timerSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.timer-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:var(--radius-xl) var(--radius-xl) 0 0}.timer-modal-title{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-size:1rem;font-weight:500}.timer-modal-icon{width:18px;height:18px;color:var(--accent-blue)}.timer-modal-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.timer-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.timer-modal-close svg{width:16px;height:16px}.timer-modal-content{padding:1.25rem;overflow-y:auto}.timer-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:var(--text-secondary)}.timer-loading .loading-spinner{width:24px;height:24px;border:2px solid var(--bg-tertiary);border-top-color:var(--accent-primary);border-radius:50%;animation:timerSpin .8s linear infinite;margin-bottom:.75rem}@keyframes timerSpin{to{transform:rotate(360deg)}}.timer-form{display:flex;flex-direction:column;gap:1rem}.timer-form .form-group{display:flex;flex-direction:column;gap:.5rem}.timer-form .form-group>label{font-size:12px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.timer-form .form-group input[type=text],.timer-form .form-group input[type=number]{padding:8px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-ui);font-size:13px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.timer-form .form-group input[type=text]:focus,.timer-form .form-group input[type=number]:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 2px #007acc26}.timer-form .form-group input[type=text]::placeholder,.timer-form .form-group input[type=number]::placeholder{color:var(--text-muted)}.timer-form .form-hint{font-size:11px;color:var(--text-muted);margin-top:-2px}.timer-alarm-slot{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:8px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);margin-bottom:8px}.timer-alarm-slot-label{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:var(--text-secondary);min-width:80px}.timer-alarm-slot input[type=text]{flex:1;min-width:80px}.timer-alarm-slot .btn{flex-shrink:0}.timer-form .form-group-readonly{gap:.5rem}.timer-form .readonly-value{padding:8px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);font-family:var(--font-mono);font-size:13px}.timer-form .form-group-checkbox{gap:0}.timer-form .form-group-checkbox>label{display:flex;flex-wrap:wrap;align-items:center;gap:8px;cursor:pointer;padding:10px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:border-color var(--transition-fast),background-color var(--transition-fast)}.timer-form .form-group-checkbox>label:hover{background:var(--bg-hover)}.timer-form .form-group-checkbox input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--accent-primary);cursor:pointer}.timer-form .checkbox-label{font-size:13px;font-weight:500;color:var(--text-primary);text-transform:none;letter-spacing:normal}.timer-form .checkbox-description{flex-basis:100%;font-size:12px;color:var(--text-secondary);margin-left:24px;text-transform:none;letter-spacing:normal;font-weight:400}.timer-form .form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.timer-form .btn{padding:8px 16px;font-family:var(--font-ui);font-size:13px;font-weight:500;border-radius:var(--radius-lg);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.timer-form .btn-secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.timer-form .btn-secondary:hover{background:var(--bg-hover);border-color:var(--text-muted)}.timer-form .btn-primary{background:var(--accent-primary);border:1px solid var(--accent-primary);color:#fff}.timer-form .btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.timer-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.timer-modal-overlay{align-items:stretch;justify-content:stretch}.timer-modal{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0;border:none;animation:timerMobileSlideUp .25s ease}@keyframes timerMobileSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.timer-modal-header{border-radius:0;padding:12px 16px;min-height:var(--mobile-header-height)}.timer-modal-title{font-size:16px}.timer-modal-close{width:40px;height:40px}.timer-modal-close svg{width:20px;height:20px}.timer-modal-content{flex:1;padding:16px;overflow-y:auto;-webkit-overflow-scrolling:touch}.timer-form .form-group input[type=text],.timer-form .form-group input[type=number]{min-height:var(--touch-target-min);padding:12px;font-size:16px}.timer-form .form-group>label{font-size:13px;margin-bottom:8px}.timer-form .form-group-checkbox>label{min-height:var(--touch-target-min);padding:12px 16px}.timer-form .form-group-checkbox input[type=checkbox]{width:20px;height:20px}.timer-form .readonly-value{min-height:var(--touch-target-min);padding:12px}.timer-form .btn{min-height:var(--touch-target-min);padding:12px 20px;font-size:14px}.timer-form .form-actions{padding-top:16px;gap:12px}}.alarm-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;animation:alarmFadeIn .15s ease}@keyframes alarmFadeIn{0%{opacity:0}to{opacity:1}}.alarm-modal{background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:90%;max-width:420px;max-height:90vh;display:flex;flex-direction:column;animation:alarmSlideIn .15s ease}@keyframes alarmSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.alarm-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:var(--radius-xl) var(--radius-xl) 0 0}.alarm-modal-title{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-size:1rem;font-weight:500}.alarm-modal-icon{width:18px;height:18px;color:var(--accent-red)}.alarm-modal-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.alarm-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.alarm-modal-close svg{width:16px;height:16px}.alarm-modal-content{padding:1.25rem;overflow-y:auto}.alarm-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:var(--text-secondary)}.alarm-loading .loading-spinner{width:24px;height:24px;border:2px solid var(--bg-tertiary);border-top-color:var(--accent-primary);border-radius:50%;animation:alarmSpin .8s linear infinite;margin-bottom:.75rem}@keyframes alarmSpin{to{transform:rotate(360deg)}}.alarm-form{display:flex;flex-direction:column;gap:1rem}.alarm-form .form-group{display:flex;flex-direction:column;gap:.5rem}.alarm-form .form-group>label{font-size:12px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.alarm-form .form-group input[type=text],.alarm-form .form-group input[type=number],.alarm-form .form-group select{padding:8px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-ui);font-size:13px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.alarm-form .form-group input[type=text]:focus,.alarm-form .form-group input[type=number]:focus{outline:none;border-color:var(--border-focus)}.alarm-form .form-group select:focus{outline:none;border-color:var(--border-focus)}.alarm-form .form-group input[type=text]::placeholder{color:var(--text-muted)}.alarm-form .form-hint{font-size:11px;color:var(--text-muted);margin-top:-2px}.alarm-form .form-group-readonly{gap:.5rem}.alarm-form .readonly-value{padding:8px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);font-family:var(--font-mono);font-size:13px}.alarm-form .form-group-checkbox{gap:0}.alarm-form .form-group-checkbox>label{display:flex;flex-wrap:wrap;align-items:center;gap:8px;cursor:pointer;padding:10px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:border-color .15s ease,background-color .15s ease}.alarm-form .form-group-checkbox>label:hover{background:var(--bg-hover)}.alarm-form .form-group-checkbox input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--accent-primary);cursor:pointer}.alarm-form .checkbox-label{font-size:13px;font-weight:500;color:var(--text-primary);text-transform:none;letter-spacing:normal}.alarm-form .checkbox-description{flex-basis:100%;font-size:12px;color:var(--text-secondary);margin-left:24px;text-transform:none;letter-spacing:normal;font-weight:400}.alarm-form .sound-file-row{display:grid;grid-template-columns:1fr auto auto;gap:8px}.alarm-form .form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.alarm-form .btn{padding:8px 16px;font-family:var(--font-ui);font-size:13px;font-weight:500;border-radius:var(--radius-lg);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.alarm-form .btn-secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.alarm-form .btn-secondary:hover{background:var(--bg-hover);border-color:var(--text-muted)}.alarm-form .btn-primary{background:var(--accent-primary);border:1px solid var(--accent-primary);color:#fff}.alarm-form .btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.alarm-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.alarm-modal-overlay{align-items:stretch;justify-content:stretch}.alarm-modal{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0;border:none;animation:alarmMobileSlideUp .25s ease}@keyframes alarmMobileSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.alarm-modal-header{border-radius:0;padding:12px 16px;min-height:var(--mobile-header-height)}.alarm-modal-title{font-size:16px}.alarm-modal-close{width:40px;height:40px}.alarm-modal-close svg{width:20px;height:20px}.alarm-modal-content{flex:1;padding:16px;overflow-y:auto;-webkit-overflow-scrolling:touch}.alarm-form .form-group input[type=text],.alarm-form .form-group input[type=number],.alarm-form .form-group select{min-height:var(--touch-target-min);padding:12px;font-size:16px}.alarm-form .form-group>label{font-size:13px;margin-bottom:8px}.alarm-form .form-group-checkbox>label{min-height:var(--touch-target-min);padding:12px 16px}.alarm-form .form-group-checkbox input[type=checkbox]{width:20px;height:20px}.alarm-form .readonly-value{min-height:var(--touch-target-min);padding:12px}.alarm-form .btn{min-height:var(--touch-target-min);padding:12px 20px;font-size:14px}.alarm-form .form-actions{padding-top:16px;gap:12px}}.script-element-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;animation:script-elementFadeIn .15s ease}@keyframes script-elementFadeIn{0%{opacity:0}to{opacity:1}}.script-element-modal{background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:90%;max-width:420px;max-height:90vh;display:flex;flex-direction:column;animation:script-elementSlideIn .15s ease}@keyframes script-elementSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.script-element-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:var(--radius-xl) var(--radius-xl) 0 0}.script-element-modal-title{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-size:1rem;font-weight:500}.script-element-modal-icon{width:18px;height:18px;color:var(--accent-purple)}.script-element-modal-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.script-element-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.script-element-modal-close svg{width:16px;height:16px}.script-element-modal-content{padding:1.25rem;overflow-y:auto}.script-element-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:var(--text-secondary)}.script-element-loading .loading-spinner{width:24px;height:24px;border:2px solid var(--bg-tertiary);border-top-color:var(--accent-primary);border-radius:50%;animation:script-elementSpin .8s linear infinite;margin-bottom:.75rem}@keyframes script-elementSpin{to{transform:rotate(360deg)}}.script-element-form{display:flex;flex-direction:column;gap:1rem}.script-element-form .form-group{display:flex;flex-direction:column;gap:.5rem}.script-element-form .form-group>label{font-size:12px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.script-element-form .form-group input[type=text],.script-element-form .form-group input[type=number]{padding:8px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-ui);font-size:13px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.script-element-form .form-group input[type=text]:focus,.script-element-form .form-group input[type=number]:focus{outline:none;border-color:var(--border-focus)}.script-element-form .form-group input[type=text]::placeholder,.script-element-form .form-group input[type=number]::placeholder{color:var(--text-muted)}.script-element-form .form-hint{font-size:11px;color:var(--text-muted);margin-top:-2px}.script-element-form .form-group-readonly{gap:.5rem}.script-element-form .readonly-value{padding:8px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);font-family:var(--font-mono);font-size:13px}.script-element-form .form-group-checkbox{gap:0}.script-element-form .form-group-checkbox>label{display:flex;flex-wrap:wrap;align-items:center;gap:8px;cursor:pointer;padding:10px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:border-color .15s ease,background-color .15s ease}.script-element-form .form-group-checkbox>label:hover{background:var(--bg-hover)}.script-element-form .form-group-checkbox input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--accent-primary);cursor:pointer}.script-element-form .checkbox-label{font-size:13px;font-weight:500;color:var(--text-primary);text-transform:none;letter-spacing:normal}.script-element-form .checkbox-description{flex-basis:100%;font-size:12px;color:var(--text-secondary);margin-left:24px;text-transform:none;letter-spacing:normal;font-weight:400}.script-element-form .form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.script-element-form .btn{padding:8px 16px;font-family:var(--font-ui);font-size:13px;font-weight:500;border-radius:var(--radius-lg);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.script-element-form .btn-secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.script-element-form .btn-secondary:hover{background:var(--bg-hover);border-color:var(--text-muted)}.script-element-form .btn-primary{background:var(--accent-primary);border:1px solid var(--accent-primary);color:#fff}.script-element-form .btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.script-element-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.script-element-modal-overlay{align-items:stretch;justify-content:stretch}.script-element-modal{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0;border:none;animation:script-elementMobileSlideUp .25s ease}@keyframes script-elementMobileSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.script-element-modal-header{border-radius:0;padding:12px 16px;min-height:var(--mobile-header-height)}.script-element-modal-title{font-size:16px}.script-element-modal-close{width:40px;height:40px}.script-element-modal-close svg{width:20px;height:20px}.script-element-modal-content{flex:1;padding:16px;overflow-y:auto;-webkit-overflow-scrolling:touch}.script-element-form .form-group input[type=text],.script-element-form .form-group input[type=number]{min-height:var(--touch-target-min);padding:12px;font-size:16px}.script-element-form .form-group>label{font-size:13px;margin-bottom:8px}.script-element-form .form-group-checkbox>label{min-height:var(--touch-target-min);padding:12px 16px}.script-element-form .form-group-checkbox input[type=checkbox]{width:20px;height:20px}.script-element-form .readonly-value{min-height:var(--touch-target-min);padding:12px}.script-element-form .btn{min-height:var(--touch-target-min);padding:12px 20px;font-size:14px}.script-element-form .form-actions{padding-top:16px;gap:12px}}.chart-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;animation:chartFadeIn .15s ease}@keyframes chartFadeIn{0%{opacity:0}to{opacity:1}}.chart-modal{background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:90%;max-width:420px;max-height:90vh;display:flex;flex-direction:column;animation:chartSlideIn .15s ease}@keyframes chartSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.chart-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:8px 8px 0 0}.chart-modal-title{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-size:1rem;font-weight:500}.chart-modal-icon{width:18px;height:18px;color:var(--accent-orange)}.chart-modal-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;transition:background .15s ease,color .15s ease}.chart-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.chart-modal-close svg{width:16px;height:16px}.chart-modal-content{padding:1.25rem;overflow-y:auto}.chart-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:var(--text-secondary)}.chart-loading .loading-spinner{width:24px;height:24px;border:2px solid var(--bg-tertiary);border-top-color:var(--accent-primary);border-radius:50%;animation:chartSpin .8s linear infinite;margin-bottom:.75rem}@keyframes chartSpin{to{transform:rotate(360deg)}}.chart-form{display:flex;flex-direction:column;gap:1rem}.chart-form .form-group{display:flex;flex-direction:column;gap:.5rem}.chart-form .form-group>label{font-size:12px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.chart-form .form-group input[type=text],.chart-form .form-group input[type=number],.chart-form .form-group select{padding:8px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-ui);font-size:13px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.chart-form .form-group input[type=text]:focus,.chart-form .form-group input[type=number]:focus{outline:none;border-color:var(--border-focus)}.chart-form .form-group input[type=text]::placeholder,.chart-form .form-group input[type=number]::placeholder{color:var(--text-muted)}.chart-form .form-group select{cursor:pointer}.chart-form .form-hint{font-size:11px;color:var(--text-muted);margin-top:-2px}.chart-form .form-group-readonly{gap:.5rem}.chart-form .readonly-value{padding:8px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);font-family:var(--font-mono);font-size:13px}.chart-form .form-group-checkbox{gap:0}.chart-form .form-group-checkbox>label{display:flex;flex-wrap:wrap;align-items:center;gap:8px;cursor:pointer;padding:10px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:border-color .15s ease,background-color .15s ease}.chart-form .form-group-checkbox>label:hover{background:var(--bg-hover)}.chart-form .form-group-checkbox input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--accent-primary);cursor:pointer}.chart-form .checkbox-label{font-size:13px;font-weight:500;color:var(--text-primary);text-transform:none;letter-spacing:normal}.chart-form .checkbox-description{flex-basis:100%;font-size:12px;color:var(--text-secondary);margin-left:24px;text-transform:none;letter-spacing:normal;font-weight:400}.chart-channel-picker-header{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;color:var(--text-secondary)}.chart-channel-picker-actions{display:flex;align-items:center;gap:10px}.chart-form .link-button{background:transparent;border:none;color:var(--accent-primary);font-size:12px;padding:0;cursor:pointer}.chart-form .link-button:hover{text-decoration:underline}.chart-channel-picker-list{max-height:220px;overflow-y:auto;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-primary)}.chart-channel-picker-empty{padding:10px 12px;font-size:12px;color:var(--text-muted)}.chart-channel-option{border-bottom:1px solid var(--border-color)}.chart-channel-option:last-child{border-bottom:none}.chart-channel-option-main{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;cursor:pointer}.chart-channel-option-main:hover{background:var(--bg-hover)}.chart-channel-option-main input[type=checkbox]{margin-top:2px;width:16px;height:16px;accent-color:var(--accent-primary)}.chart-channel-option-body{min-width:0;display:flex;flex-direction:column;gap:2px}.chart-channel-option-title{font-size:13px;color:var(--text-primary);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chart-channel-option-meta{font-size:11px;color:var(--text-muted)}.chart-channel-wave-options{padding:0 12px 10px 38px;display:flex;flex-direction:column;gap:8px}.chart-channel-wave-checkbox{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary);cursor:pointer}.chart-channel-wave-checkbox input[type=checkbox]{width:14px;height:14px;accent-color:var(--accent-primary)}.chart-channel-wave-period{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.chart-channel-wave-period label{font-size:11px;color:var(--text-muted)}.chart-channel-wave-period input[type=number]{width:110px;padding:6px 8px;font-size:12px}.chart-channel-wave-note{width:100%;font-size:11px;color:var(--text-muted)}.chart-form .form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.chart-form .btn{padding:8px 16px;font-family:var(--font-ui);font-size:13px;font-weight:500;border-radius:var(--radius-md);cursor:pointer;transition:background-color .15s ease,border-color .15s ease}.chart-form .btn-secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.chart-form .btn-secondary:hover{background:var(--bg-hover);border-color:var(--text-muted)}.chart-form .btn-primary{background:var(--accent-primary);border:1px solid var(--accent-primary);color:#fff}.chart-form .btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.chart-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.chart-modal-overlay{align-items:stretch;justify-content:stretch}.chart-modal{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0;border:none;animation:chartMobileSlideUp .25s ease}@keyframes chartMobileSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.chart-modal-header{border-radius:0;padding:12px 16px;min-height:var(--mobile-header-height)}.chart-modal-title{font-size:16px}.chart-modal-close{width:40px;height:40px}.chart-modal-close svg{width:20px;height:20px}.chart-modal-content{flex:1;padding:16px;overflow-y:auto;-webkit-overflow-scrolling:touch}.chart-form .form-group input[type=text],.chart-form .form-group input[type=number],.chart-form .form-group select{min-height:var(--touch-target-min);padding:12px;font-size:16px}.chart-form .form-group>label{font-size:13px;margin-bottom:8px}.chart-form .form-group-checkbox>label{min-height:var(--touch-target-min);padding:12px 16px}.chart-form .form-group-checkbox input[type=checkbox]{width:20px;height:20px}.chart-form .readonly-value{min-height:var(--touch-target-min);padding:12px}.chart-form .btn{min-height:var(--touch-target-min);padding:12px 20px;font-size:14px}.chart-form .form-actions{padding-top:16px;gap:12px}.chart-channel-picker-list{max-height:40vh}}.profile-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;animation:profileFadeIn .15s ease}@keyframes profileFadeIn{0%{opacity:0}to{opacity:1}}.profile-modal{background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:90%;max-width:420px;max-height:90vh;display:flex;flex-direction:column;animation:profileSlideIn .15s ease}@keyframes profileSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.profile-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:var(--radius-xl) var(--radius-xl) 0 0}.profile-modal-title{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-size:1rem;font-weight:500}.profile-modal-icon{width:18px;height:18px;color:var(--accent-yellow)}.profile-modal-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.profile-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.profile-modal-close svg{width:16px;height:16px}.profile-modal-content{padding:1.25rem;overflow-y:auto}.profile-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:var(--text-secondary)}.profile-loading .loading-spinner{width:24px;height:24px;border:2px solid var(--bg-tertiary);border-top-color:var(--accent-primary);border-radius:50%;animation:profileSpin .8s linear infinite;margin-bottom:.75rem}@keyframes profileSpin{to{transform:rotate(360deg)}}.profile-form{display:flex;flex-direction:column;gap:1rem}.profile-form .form-group{display:flex;flex-direction:column;gap:.5rem}.profile-form .form-group>label{font-size:12px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.profile-form .form-group input[type=text]{padding:8px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-ui);font-size:13px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.profile-form .form-group input[type=text]:focus{outline:none;border-color:var(--border-focus)}.profile-form .form-group input[type=text]::placeholder{color:var(--text-muted)}.profile-form .form-group input[type=number]{padding:8px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-ui);font-size:13px}.profile-table-editor{overflow-x:auto}.profile-table{width:100%;border-collapse:collapse;font-size:13px}.profile-table th{text-align:left;padding:8px 10px 6px 0;font-weight:500;color:var(--text-secondary);font-size:11px;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-color)}.profile-table td{padding:6px 10px 6px 0;vertical-align:middle}.profile-table td:last-child,.profile-table th:last-child{padding-right:0}.profile-table input[type=number]{width:100%;min-width:0;box-sizing:border-box}.profile-table-col-delete{width:1%;white-space:nowrap}.profile-form .form-hint{font-size:11px;color:var(--text-muted);margin-top:-2px}.profile-form .form-group-readonly{gap:.5rem}.profile-form .readonly-value{padding:8px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);font-family:var(--font-mono);font-size:13px}.profile-form .form-group-checkbox{gap:0}.profile-form .form-group-checkbox>label{display:flex;flex-wrap:wrap;align-items:center;gap:8px;cursor:pointer;padding:10px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:border-color .15s ease,background-color .15s ease}.profile-form .form-group-checkbox>label:hover{background:var(--bg-hover)}.profile-form .form-group-checkbox input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--accent-primary);cursor:pointer}.profile-form .checkbox-label{font-size:13px;font-weight:500;color:var(--text-primary);text-transform:none;letter-spacing:normal}.profile-form .checkbox-description{flex-basis:100%;font-size:12px;color:var(--text-secondary);margin-left:24px;text-transform:none;letter-spacing:normal;font-weight:400}.profile-form .form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.profile-form .btn{padding:8px 16px;font-family:var(--font-ui);font-size:13px;font-weight:500;border-radius:var(--radius-lg);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.profile-form .btn-secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.profile-form .btn-secondary:hover{background:var(--bg-hover);border-color:var(--text-muted)}.profile-form .btn-primary{background:var(--accent-primary);border:1px solid var(--accent-primary);color:#fff}.profile-form .btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.profile-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.profile-modal-overlay{align-items:stretch;justify-content:stretch}.profile-modal{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0;border:none;animation:profileMobileSlideUp .25s ease}@keyframes profileMobileSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.profile-modal-header{border-radius:0;padding:12px 16px;min-height:var(--mobile-header-height)}.profile-modal-title{font-size:16px}.profile-modal-close{width:40px;height:40px}.profile-modal-close svg{width:20px;height:20px}.profile-modal-content{flex:1;padding:16px;overflow-y:auto;-webkit-overflow-scrolling:touch}.profile-form .form-group input[type=text]{min-height:var(--touch-target-min);padding:12px;font-size:16px}.profile-form .form-group>label{font-size:13px;margin-bottom:8px}.profile-form .form-group-checkbox>label{min-height:var(--touch-target-min);padding:12px 16px}.profile-form .form-group-checkbox input[type=checkbox]{width:20px;height:20px}.profile-form .readonly-value{min-height:var(--touch-target-min);padding:12px}.profile-form .btn{min-height:var(--touch-target-min);padding:12px 20px;font-size:14px}.profile-form .form-actions{padding-top:16px;gap:12px}}.form-group-calibration{display:flex;flex-direction:column;gap:.5rem}.form-group-calibration>label{font-size:12px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.calibration-editor{display:flex;flex-direction:column;gap:.75rem;padding:.75rem;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-ui);font-size:13px}.calibration-editor-header{display:flex;align-items:center;gap:.5rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-color)}.calibration-editor-header>label{font-size:10px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.calibration-value-select{flex:1;padding:4px 8px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-ui);font-size:12px;cursor:pointer;transition:border-color var(--transition-fast)}.calibration-value-select:focus{outline:none;border-color:var(--border-focus)}.calibration-loading{display:flex;align-items:center;gap:.5rem;padding:1rem;color:var(--text-secondary);font-size:12px}.calibration-loading .loading-spinner{width:16px;height:16px;border:2px solid var(--bg-tertiary);border-top-color:var(--accent-primary);border-radius:50%;animation:calibrationSpin .8s linear infinite}@keyframes calibrationSpin{to{transform:rotate(360deg)}}.calibration-empty{padding:1rem;text-align:center;color:var(--text-muted);font-size:12px;font-style:italic}.calibration-preview-row{display:flex;align-items:center;gap:.5rem;padding:8px 12px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm)}.calibration-preview-item{display:flex;align-items:center;gap:4px}.calibration-preview-label{font-size:10px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.calibration-preview-value{font-family:var(--font-mono);font-size:13px;color:var(--text-primary)}.calibration-preview-value.highlight{color:var(--accent-primary);font-weight:600}.calibration-preview-arrow{color:var(--text-muted);font-size:14px}.calibration-table-container{max-height:220px;overflow-y:auto;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-secondary)}.calibration-table{width:100%;border-collapse:collapse}.calibration-table th{background:var(--bg-tertiary);padding:6px 10px;text-align:left;font-size:10px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:1}.calibration-table td{padding:6px 10px;border-bottom:1px solid var(--border-color);color:var(--text-primary);font-size:12px}.calibration-table tbody tr{transition:background-color var(--transition-fast)}.calibration-table tbody tr:hover{background:var(--bg-hover)}.calibration-table tbody tr.calibration-row-selected{background:var(--bg-tertiary);border-left:2px solid var(--accent-primary)}.calibration-table tbody tr:last-child td{border-bottom:none}.calibration-table input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--accent-primary);cursor:pointer}.calibration-drag-handle{width:32px;color:var(--text-muted);cursor:grab;text-align:center;padding:6px 4px!important;transition:color var(--transition-fast)}.calibration-drag-handle:hover{color:var(--text-primary)}.calibration-drag-handle:active{cursor:grabbing}.calibration-desc-cell{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calibration-empty-row{text-align:center;color:var(--text-muted);font-style:italic;font-size:12px;padding:1rem!important}.calibration-row-actions{display:flex;gap:4px}.calibration-actions{display:flex;gap:6px;flex-wrap:wrap}.calibration-actions .btn{padding:5px 10px;font-family:var(--font-ui);font-size:11px;font-weight:500;border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast);border:1px solid transparent}.calibration-actions .btn-primary{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.calibration-actions .btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.calibration-actions .btn-secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.calibration-actions .btn-secondary:hover{background:var(--bg-hover);border-color:var(--text-muted)}.calibration-actions .btn:disabled{opacity:.5;cursor:not-allowed}.btn-icon{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;border-radius:var(--radius-sm);transition:background-color var(--transition-fast),color var(--transition-fast);font-size:14px;line-height:1}.btn-icon:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-icon.btn-sm{padding:2px 4px;font-size:12px}.calibration-format{padding:.75rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm)}.calibration-format h3{margin:0 0 .5rem;font-size:10px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.calibration-format-fields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.5rem}.calibration-format .form-group{display:flex;flex-direction:column;gap:.25rem}.calibration-format .form-group>label{font-size:10px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.calibration-format .form-group input{padding:4px 8px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-ui);font-size:12px;transition:border-color var(--transition-fast)}.calibration-format .form-group input:focus{outline:none;border-color:var(--border-focus)}.calibration-format .form-group input::placeholder{color:var(--text-muted)}.calibration-reverse-toggle{margin-top:.5rem}.calibration-reverse-toggle label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:12px;color:var(--text-primary)}.calibration-reverse-toggle input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--accent-primary);cursor:pointer}.calibration-save-row{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;background:var(--bg-tertiary);border:1px solid var(--accent-primary);border-radius:var(--radius-sm)}.calibration-dirty-indicator{color:var(--accent-primary);font-size:11px;font-weight:500}.calibration-save-actions{display:flex;gap:6px}.calibration-save-actions .btn{padding:5px 10px;font-family:var(--font-ui);font-size:11px;font-weight:500;border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.calibration-save-actions .btn-primary{background:var(--accent-primary);color:#fff;border:1px solid var(--accent-primary)}.calibration-save-actions .btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.calibration-save-actions .btn-primary:disabled{opacity:.6;cursor:not-allowed}.calibration-save-actions .btn-secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.calibration-save-actions .btn-secondary:hover{background:var(--bg-hover);border-color:var(--text-muted)}.calibration-add-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:2000;animation:calibrationFadeIn .15s ease}@keyframes calibrationFadeIn{0%{opacity:0}to{opacity:1}}.calibration-add-dialog{background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:90%;max-width:400px;max-height:80vh;display:flex;flex-direction:column;animation:calibrationSlideIn .15s ease}@keyframes calibrationSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.calibration-add-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:var(--radius-xl) var(--radius-xl) 0 0}.calibration-add-dialog-header h3{margin:0;font-size:1rem;font-weight:500;color:var(--text-primary)}.calibration-add-dialog-content{flex:1;overflow-y:auto;padding:.75rem;max-height:400px}.calibration-type-option{padding:.75rem;margin-bottom:.5rem;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.calibration-type-option:hover{background:var(--bg-hover);border-color:var(--text-muted)}.calibration-type-label{font-weight:500;color:var(--text-primary);margin-bottom:.25rem}.calibration-type-description{font-size:12px;color:var(--text-secondary)}.calibration-edit-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:2000;animation:calibrationFadeIn .15s ease}.calibration-edit-dialog{background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:90%;max-width:500px;max-height:85vh;display:flex;flex-direction:column;animation:calibrationSlideIn .15s ease}.calibration-edit-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:var(--radius-xl) var(--radius-xl) 0 0}.calibration-edit-dialog-header h3{margin:0;font-size:1rem;font-weight:500;color:var(--text-primary)}.calibration-edit-dialog-content{flex:1;overflow-y:auto;padding:1.25rem}.calibration-edit-dialog-content .form-group{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.calibration-edit-dialog-content .form-group>label{font-size:12px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.calibration-edit-dialog-content .form-group input[type=number]{padding:8px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-ui);font-size:13px;transition:border-color var(--transition-fast)}.calibration-edit-dialog-content .form-group input[type=number]:focus{outline:none;border-color:var(--border-focus)}.calibration-edit-dialog-content .form-group-checkbox{margin-bottom:1rem}.calibration-edit-dialog-content .form-group-checkbox>label{display:flex;align-items:center;gap:8px;cursor:pointer;padding:10px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:border-color .15s ease,background-color .15s ease}.calibration-edit-dialog-content .form-group-checkbox>label:hover{background:var(--bg-hover)}.calibration-edit-dialog-content .form-group-checkbox input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--accent-primary);cursor:pointer}.calibration-edit-dialog-content .checkbox-label{font-size:13px;font-weight:500;color:var(--text-primary);text-transform:none;letter-spacing:normal}.calibration-no-params{padding:1rem;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);font-size:12px;font-style:italic;text-align:center}.calibration-edit-dialog-actions{display:flex;justify-content:flex-end;gap:8px;padding:1rem 1.25rem;border-top:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:0 0 var(--radius-xl) var(--radius-xl)}.calibration-edit-dialog-actions .btn{padding:8px 16px;font-family:var(--font-ui);font-size:13px;font-weight:500;border-radius:var(--radius-lg);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.calibration-edit-dialog-actions .btn-primary{background:var(--accent-primary);border:1px solid var(--accent-primary);color:#fff}.calibration-edit-dialog-actions .btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.calibration-edit-dialog-actions .btn-secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.calibration-edit-dialog-actions .btn-secondary:hover{background:var(--bg-hover);border-color:var(--text-muted)}.lookup-table-editor{margin-top:1rem}.lookup-table-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.lookup-table-header h4{margin:0;font-size:13px;font-weight:600;color:var(--text-primary)}.lookup-table-header .btn-sm{padding:4px 8px;font-size:11px}.lookup-table{width:100%;border-collapse:collapse;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-primary);overflow:hidden}.lookup-table th{background:var(--bg-tertiary);padding:8px 12px;text-align:left;font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-color)}.lookup-table td{padding:8px 12px;border-bottom:1px solid var(--border-color)}.lookup-table tbody tr:last-child td{border-bottom:none}.lookup-table input[type=number]{width:100%;padding:6px 8px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-mono);font-size:12px;transition:border-color var(--transition-fast)}.lookup-table input[type=number]:focus{outline:none;border-color:var(--border-focus)}.lookup-table-empty{text-align:center;color:var(--text-muted);font-style:italic;padding:1.5rem!important}.lookup-table-toolbar{display:flex;gap:4px;flex-wrap:wrap}.lookup-table-toolbar .btn-sm{padding:4px 8px;font-size:11px}.high-precision-input{padding:8px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-mono);font-size:13px;transition:border-color var(--transition-fast);width:100%}.high-precision-input:focus{outline:none;border-color:var(--border-focus)}.calibration-edit-dialog-content .form-hint{font-size:11px;color:var(--text-muted);margin-top:-2px}.hydrometer-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;animation:hydrometerFadeIn .15s ease}@keyframes hydrometerFadeIn{0%{opacity:0}to{opacity:1}}.hydrometer-modal{background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:90%;max-width:420px;max-height:90vh;display:flex;flex-direction:column;animation:hydrometerSlideIn .15s ease}@keyframes hydrometerSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.hydrometer-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:8px 8px 0 0}.hydrometer-modal-title{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-size:1rem;font-weight:500}.hydrometer-modal-icon{width:18px;height:18px;color:var(--accent-primary)}.hydrometer-modal-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;transition:background .15s ease,color .15s ease}.hydrometer-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.hydrometer-modal-close svg{width:16px;height:16px}.hydrometer-modal-content{padding:1.25rem;overflow-y:auto}.hydrometer-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:var(--text-secondary)}.hydrometer-loading .loading-spinner{width:24px;height:24px;border:2px solid var(--bg-tertiary);border-top-color:var(--accent-primary);border-radius:50%;animation:hydrometerSpin .8s linear infinite;margin-bottom:.75rem}@keyframes hydrometerSpin{to{transform:rotate(360deg)}}.hydrometer-form{display:flex;flex-direction:column;gap:1rem}.hydrometer-form .form-group{display:flex;flex-direction:column;gap:.5rem}.hydrometer-form .form-group>label{font-size:12px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.hydrometer-form .form-group input[type=text]{padding:8px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-ui);font-size:13px;transition:border-color .15s ease}.hydrometer-form .form-group input[type=text]:focus{outline:none;border-color:var(--border-focus)}.hydrometer-form .form-group input[type=text]::placeholder{color:var(--text-muted)}.hydrometer-form .form-hint{font-size:11px;color:var(--text-muted);margin-top:-2px}.hydrometer-form .form-group-info{gap:.75rem}.hydrometer-form .port-info{display:flex;flex-direction:column;gap:6px;padding:10px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md)}.hydrometer-form .port-info-item{display:flex;align-items:center;gap:8px;font-size:13px}.hydrometer-form .port-info-label{color:var(--text-secondary)}.hydrometer-form .port-info-value{color:var(--text-primary);font-family:var(--font-mono)}.hydrometer-form .port-info-value.highlight{color:var(--accent-primary);font-weight:600}.hydrometer-form .form-group-checkbox{gap:0}.hydrometer-form .form-group-checkbox>label{display:flex;flex-wrap:wrap;align-items:center;gap:8px;cursor:pointer;padding:10px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:border-color .15s ease,background-color .15s ease}.hydrometer-form .form-group-checkbox>label:hover{background:var(--bg-hover)}.hydrometer-form .form-group-checkbox input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--accent-primary);cursor:pointer}.hydrometer-form .checkbox-label{font-size:13px;font-weight:500;color:var(--text-primary);text-transform:none;letter-spacing:normal}.hydrometer-form .checkbox-description{flex-basis:100%;font-size:12px;color:var(--text-secondary);margin-left:24px;text-transform:none;letter-spacing:normal;font-weight:400}.hydrometer-form .form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.hydrometer-form .btn{padding:8px 16px;font-family:var(--font-ui);font-size:13px;font-weight:500;border-radius:var(--radius-md);cursor:pointer;transition:background-color .15s ease,border-color .15s ease}.hydrometer-form .btn-secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.hydrometer-form .btn-secondary:hover{background:var(--bg-hover);border-color:var(--text-muted)}.hydrometer-form .btn-primary{background:var(--accent-primary);border:1px solid var(--accent-primary);color:#fff}.hydrometer-form .btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.hydrometer-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.hydrometer-modal-overlay{align-items:stretch;justify-content:stretch}.hydrometer-modal{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0;border:none;animation:hydrometerMobileSlideUp .25s ease}@keyframes hydrometerMobileSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.hydrometer-modal-header{border-radius:0;padding:12px 16px;min-height:var(--mobile-header-height)}.hydrometer-modal-title{font-size:16px}.hydrometer-modal-close{width:40px;height:40px}.hydrometer-modal-close svg{width:20px;height:20px}.hydrometer-modal-content{flex:1;padding:16px;overflow-y:auto;-webkit-overflow-scrolling:touch}.hydrometer-form .form-group input[type=text]{min-height:var(--touch-target-min);padding:12px;font-size:16px}.hydrometer-form .form-group>label{font-size:13px;margin-bottom:8px}.hydrometer-form .form-group-checkbox>label{min-height:var(--touch-target-min);padding:12px 16px}.hydrometer-form .form-group-checkbox input[type=checkbox]{width:20px;height:20px}.hydrometer-form .btn{min-height:var(--touch-target-min);padding:12px 20px;font-size:14px}.hydrometer-form .form-actions{padding-top:16px;gap:12px}}.pid-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;animation:pidFadeIn .15s ease}@keyframes pidFadeIn{0%{opacity:0}to{opacity:1}}.pid-modal{background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:90%;max-width:420px;max-height:90vh;display:flex;flex-direction:column;animation:pidSlideIn .15s ease}@keyframes pidSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.pid-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:8px 8px 0 0}.pid-modal-title{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-size:1rem;font-weight:500}.pid-modal-icon{width:18px;height:18px;color:var(--accent-blue)}.pid-modal-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;transition:background .15s ease,color .15s ease}.pid-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.pid-modal-close svg{width:16px;height:16px}.pid-modal-content{padding:1.25rem;overflow-y:auto}.pid-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:var(--text-secondary)}.pid-loading .loading-spinner{width:24px;height:24px;border:2px solid var(--bg-tertiary);border-top-color:var(--accent-primary);border-radius:50%;animation:pidSpin .8s linear infinite;margin-bottom:.75rem}@keyframes pidSpin{to{transform:rotate(360deg)}}.pid-form{display:flex;flex-direction:column;gap:1rem}.pid-form .form-group{display:flex;flex-direction:column;gap:.5rem}.pid-form .form-group>label{font-size:12px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.pid-form .form-group input[type=text],.pid-form .form-group input[type=number]{padding:8px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-ui);font-size:13px;transition:border-color .15s ease}.pid-form .form-group input[type=text]:focus,.pid-form .form-group input[type=number]:focus{outline:none;border-color:var(--border-focus)}.pid-form .form-group input[type=text]::placeholder,.pid-form .form-group input[type=number]::placeholder{color:var(--text-muted)}.pid-form .form-hint{font-size:11px;color:var(--text-muted);margin-top:-2px}.pid-form .form-group-info{gap:.75rem}.pid-form .port-info{display:flex;flex-direction:column;gap:6px;padding:10px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md)}.pid-form .port-info-item{display:flex;align-items:center;gap:8px;font-size:13px}.pid-form .port-info-label{color:var(--text-secondary)}.pid-form .port-info-value{color:var(--text-primary);font-family:var(--font-mono)}.pid-form .port-info-value.highlight{color:var(--accent-blue);font-weight:600}.pid-form .form-group-checkbox{gap:0}.pid-form .form-group-checkbox>label{display:flex;flex-wrap:wrap;align-items:center;gap:8px;cursor:pointer;padding:10px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:border-color .15s ease,background-color .15s ease}.pid-form .form-group-checkbox>label:hover{background:var(--bg-hover)}.pid-form .form-group-checkbox input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--accent-primary);cursor:pointer}.pid-form .checkbox-label{font-size:13px;font-weight:500;color:var(--text-primary);text-transform:none;letter-spacing:normal}.pid-form .checkbox-description{flex-basis:100%;font-size:12px;color:var(--text-secondary);margin-left:24px;text-transform:none;letter-spacing:normal;font-weight:400}.pid-form .form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.pid-form .btn{padding:8px 16px;font-family:var(--font-ui);font-size:13px;font-weight:500;border-radius:var(--radius-lg);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.pid-form .btn-secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.pid-form .btn-secondary:hover{background:var(--bg-hover);border-color:var(--text-muted)}.pid-form .btn-primary{background:var(--accent-primary);border:1px solid var(--accent-primary);color:#fff}.pid-form .btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.pid-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.pid-modal-overlay{align-items:stretch;justify-content:stretch}.pid-modal{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0;border:none;animation:pidMobileSlideUp .25s ease}@keyframes pidMobileSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.pid-modal-header{border-radius:0;padding:12px 16px;min-height:var(--mobile-header-height)}.pid-modal-title{font-size:16px}.pid-modal-close{width:40px;height:40px}.pid-modal-close svg{width:20px;height:20px}.pid-modal-content{flex:1;padding:16px;overflow-y:auto;-webkit-overflow-scrolling:touch}.pid-form .form-group input[type=text],.pid-form .form-group input[type=number]{min-height:var(--touch-target-min);padding:12px;font-size:16px}.pid-form .form-group>label{font-size:13px;margin-bottom:8px}.pid-form .form-group-checkbox>label{min-height:var(--touch-target-min);padding:12px 16px}.pid-form .form-group-checkbox input[type=checkbox]{width:20px;height:20px}.pid-form .btn{min-height:var(--touch-target-min);padding:12px 20px;font-size:14px}.pid-form .form-actions{padding-top:16px;gap:12px}}.calibration-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;animation:calibModalFadeIn .15s ease}@keyframes calibModalFadeIn{0%{opacity:0}to{opacity:1}}.calibration-modal{background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:90%;max-width:580px;max-height:90vh;display:flex;flex-direction:column;animation:calibModalSlideIn .15s ease}@keyframes calibModalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.calibration-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:var(--radius-xl) var(--radius-xl) 0 0}.calibration-modal-title{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-size:1rem;font-weight:500}.calibration-modal-icon{width:18px;height:18px;color:var(--accent-primary)}.calibration-modal-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.calibration-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.calibration-modal-close svg{width:16px;height:16px}.calibration-modal-content{padding:1.25rem;overflow-y:auto}.calibration-modal-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:var(--text-secondary)}.calibration-modal-loading .loading-spinner{width:24px;height:24px;border:2px solid var(--bg-tertiary);border-top-color:var(--accent-primary);border-radius:50%;animation:calibModalSpin .8s linear infinite;margin-bottom:.75rem}@keyframes calibModalSpin{to{transform:rotate(360deg)}}.calibration-modal-error{padding:2rem;text-align:center;color:var(--text-secondary);font-style:italic}@media(max-width:768px){.calibration-modal-overlay{align-items:stretch;justify-content:stretch}.calibration-modal{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0;border:none;animation:calibModalMobileSlideUp .25s ease}@keyframes calibModalMobileSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.calibration-modal-header{border-radius:0;padding:12px 16px;min-height:var(--mobile-header-height)}.calibration-modal-title{font-size:16px}.calibration-modal-close{width:40px;height:40px}.calibration-modal-close svg{width:20px;height:20px}.calibration-modal-content{flex:1;padding:16px;overflow-y:auto;-webkit-overflow-scrolling:touch}}.device-create-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.device-create-modal{background-color:var(--bg-primary);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:90%;max-width:500px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.device-create-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-color);background-color:var(--bg-secondary);border-radius:var(--radius-xl) var(--radius-xl) 0 0}.device-create-modal-title{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;color:var(--text-primary)}.device-create-modal-icon{width:18px;height:18px;color:var(--accent-blue)}.device-create-modal-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:none;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.device-create-modal-close:hover{background-color:var(--bg-hover);color:var(--text-primary)}.device-create-modal-close:active{background-color:var(--bg-active)}.device-create-modal-close svg{width:16px;height:16px}.device-create-modal-content{flex:1;overflow-y:auto;padding:20px}.device-create-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px 20px;color:var(--text-secondary);font-size:13px}.device-create-form{display:flex;flex-direction:column;gap:20px}.device-create-form-section{display:flex;flex-direction:column;gap:16px}.device-create-field{display:flex;flex-direction:column;gap:6px}.device-create-field label{font-size:13px;font-weight:500;color:var(--text-primary)}.device-create-field label .required{color:var(--accent-red);margin-left:2px}.device-create-input,.device-create-select{width:100%;padding:8px 10px;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;font-family:var(--font-ui);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.device-create-input:focus,.device-create-select:focus{outline:none;border-color:var(--accent-blue);background-color:var(--bg-primary);box-shadow:0 0 0 2px #0e639c33}.device-create-input::placeholder{color:var(--text-muted)}.device-create-input.error,.device-create-select.error{border-color:var(--accent-red)}.device-create-input.error:focus,.device-create-select.error:focus{box-shadow:0 0 0 2px #f4474733}.device-create-select:disabled{opacity:.5;cursor:not-allowed}.device-create-error{font-size:12px;color:var(--accent-red);margin-top:2px}.device-create-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding-top:20px;border-top:1px solid var(--border-color)}.device-create-button{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;border-radius:var(--radius-lg);font-size:13px;font-weight:500;font-family:var(--font-ui);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast);border:1px solid transparent}.device-create-button:disabled{opacity:.5;cursor:not-allowed}.device-create-button-secondary{background-color:var(--bg-secondary);color:var(--text-primary);border-color:var(--border-color)}.device-create-button-secondary:hover:not(:disabled){background-color:var(--bg-hover)}.device-create-button-secondary:active:not(:disabled){background-color:var(--bg-active)}.device-create-button-primary{background-color:var(--accent-blue);color:#fff;border-color:var(--accent-blue)}.device-create-button-primary:hover:not(:disabled){background-color:#17b;border-color:#17b}.device-create-button-primary:active:not(:disabled){background-color:#0e5a8a;border-color:#0e5a8a}.device-create-button-spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:device-create-spin .6s linear infinite}@keyframes device-create-spin{to{transform:rotate(360deg)}}.loading-spinner{width:24px;height:24px;border:3px solid var(--border-color);border-top-color:var(--accent-blue);border-radius:50%;animation:device-create-spin .8s linear infinite}@media(max-width:768px){.device-create-modal-overlay{align-items:stretch;justify-content:stretch}.device-create-modal{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0;animation:deviceCreateMobileSlideUp .25s ease}@keyframes deviceCreateMobileSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.device-create-modal-header{padding:12px 16px;min-height:var(--mobile-header-height)}.device-create-modal-title{font-size:16px}.device-create-modal-close{width:40px;height:40px}.device-create-modal-close svg{width:20px;height:20px}.device-create-modal-content{flex:1;padding:16px;overflow-y:auto;-webkit-overflow-scrolling:touch}.device-create-input,.device-create-select{min-height:var(--touch-target-min);padding:12px;font-size:16px}.device-create-field label{font-size:14px;margin-bottom:8px}.device-create-button{min-height:var(--touch-target-min);padding:12px 20px;font-size:14px}.device-create-modal-footer{padding:16px;gap:12px}}.device-element-create-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.device-element-create-modal{background-color:var(--bg-primary);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:90%;max-width:500px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.device-element-create-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-color);background-color:var(--bg-secondary);border-radius:var(--radius-xl) var(--radius-xl) 0 0}.device-element-create-modal-title{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;color:var(--text-primary)}.device-element-create-modal-icon{width:18px;height:18px;color:var(--accent-blue)}.device-element-create-modal-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:none;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.device-element-create-modal-close:hover{background-color:var(--bg-hover);color:var(--text-primary)}.device-element-create-modal-close:active{background-color:var(--bg-active)}.device-element-create-modal-close svg{width:16px;height:16px}.device-element-create-modal-content{flex:1;overflow-y:auto;padding:20px}.device-element-create-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px 20px;color:var(--text-secondary);font-size:13px}.device-element-create-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:40px 20px;text-align:center;color:var(--text-secondary);font-size:13px}.device-element-create-empty .empty-icon{width:32px;height:32px;color:var(--text-muted);margin-bottom:8px}.device-element-create-empty .empty-hint{font-size:12px;color:var(--text-muted)}.device-element-create-form{display:flex;flex-direction:column;gap:20px}.device-element-create-form-section{display:flex;flex-direction:column;gap:16px}.device-element-create-field{display:flex;flex-direction:column;gap:6px}.device-element-create-field label{font-size:13px;font-weight:500;color:var(--text-primary)}.device-element-create-field label .required{color:var(--accent-red);margin-left:2px}.device-element-create-select{width:100%;padding:8px 10px;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;font-family:var(--font-ui);transition:all .15s}.device-element-create-select:focus{outline:none;border-color:var(--accent-blue);background-color:var(--bg-primary);box-shadow:0 0 0 2px #0e639c33}.device-element-create-select:disabled{opacity:.5;cursor:not-allowed}.device-element-create-hint{font-size:12px;color:var(--text-muted);margin-top:2px}.device-element-create-error-box{display:flex;align-items:flex-start;gap:10px;padding:12px;background-color:#f447471a;border:1px solid rgba(244,71,71,.3);border-radius:var(--radius-sm);color:var(--accent-red);font-size:13px}.device-element-create-error-box .error-icon{width:16px;height:16px;flex-shrink:0;margin-top:1px}.device-element-create-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding-top:20px;border-top:1px solid var(--border-color)}.device-element-create-button{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;border-radius:var(--radius-lg);font-size:13px;font-weight:500;font-family:var(--font-ui);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast);border:1px solid transparent}.device-element-create-button:disabled{opacity:.5;cursor:not-allowed}.device-element-create-button-secondary{background-color:var(--bg-secondary);color:var(--text-primary);border-color:var(--border-color)}.device-element-create-button-secondary:hover:not(:disabled){background-color:var(--bg-hover)}.device-element-create-button-secondary:active:not(:disabled){background-color:var(--bg-active)}.device-element-create-button-primary{background-color:var(--accent-blue);color:#fff;border-color:var(--accent-blue)}.device-element-create-button-primary:hover:not(:disabled){background-color:#17b;border-color:#17b}.device-element-create-button-primary:active:not(:disabled){background-color:#0e5a8a;border-color:#0e5a8a}.device-element-create-button-spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:device-element-create-spin .6s linear infinite}@keyframes device-element-create-spin{to{transform:rotate(360deg)}}.device-element-create-loading .loading-spinner{width:24px;height:24px;border:3px solid var(--border-color);border-top-color:var(--accent-blue);border-radius:50%;animation:device-element-create-spin .8s linear infinite}@media(max-width:768px){.device-element-create-modal-overlay{align-items:stretch;justify-content:stretch}.device-element-create-modal{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0;animation:deviceElementCreateMobileSlideUp .25s ease}@keyframes deviceElementCreateMobileSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.device-element-create-modal-header{padding:12px 16px;min-height:var(--mobile-header-height)}.device-element-create-modal-title{font-size:16px}.device-element-create-modal-close{width:40px;height:40px}.device-element-create-modal-close svg{width:20px;height:20px}.device-element-create-modal-content{flex:1;padding:16px;overflow-y:auto;-webkit-overflow-scrolling:touch}.device-element-create-select{min-height:var(--touch-target-min);padding:12px;font-size:16px}.device-element-create-field label{font-size:14px;margin-bottom:8px}.device-element-create-button{min-height:var(--touch-target-min);padding:12px 20px;font-size:14px}.device-element-create-modal-footer{padding:16px;gap:12px}}.solution-explorer{height:100%;overflow:auto;font-size:13px}.solution-explorer-toolbar{padding:8px 12px;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary)}.solution-explorer-toggle{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:12px;color:var(--text-secondary)}.solution-explorer-toggle input[type=checkbox]{cursor:pointer}.solution-explorer-toggle span{-webkit-user-select:none;user-select:none}.tree-item-hidden-badge{color:var(--text-muted);font-style:italic}.explorer-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:8px;color:var(--text-muted);font-size:12px}.loading-spinner{width:16px;height:16px;border:1.5px solid var(--border-color);border-top-color:var(--accent-blue);border-radius:50%;animation:spin .8s linear infinite}.solution-explorer .rct-tree-root{padding:6px 0}.solution-explorer .rct-tree-item-li{padding:0}.solution-explorer .rct-tree-item-li>div{display:flex;width:100%}.solution-explorer ul ul{padding-left:16px}.solution-explorer .rct-tree-item-title-container{padding:3px 0;border-radius:0;cursor:pointer;background:transparent!important;display:flex;flex:1;min-width:0}.solution-explorer .rct-tree-item-button{flex:1;min-width:0;display:flex}.solution-explorer .rct-tree-item-title-container:hover{background-color:var(--bg-hover)!important}.solution-explorer .rct-tree-item-title-container-selected,.solution-explorer .rct-tree-item-title-container-selected.rct-tree-item-title-container,.solution-explorer [class*=rct-tree-item-title-container-selected]{background-color:var(--list-active-background)!important;background:var(--list-active-background)!important;box-shadow:inset 2px 0 0 var(--border-focus)!important}.solution-explorer .rct-tree-item-title-container-selected:hover,.solution-explorer [class*=rct-tree-item-title-container-selected]:hover{background-color:var(--list-active-hover-background)!important;background:var(--list-active-hover-background)!important}.solution-explorer .rct-tree-item-title-container-focused,.solution-explorer .rct-tree-item-title-container:focus,.solution-explorer [class*=focused]{outline:none!important}.solution-explorer,.solution-explorer [data-rct-tree],.solution-explorer .rct-tree-root{--rct-item-indent: 16px !important;--rct-color-tree-bg: transparent !important;--rct-color-tree-focus-outline: transparent !important;--rct-color-focustree-item-selected-bg: var(--list-active-background) !important;--rct-color-focustree-item-selected-text: var(--text-primary) !important;--rct-color-focustree-item-focused-border: transparent !important;--rct-color-focustree-item-hover-bg: var(--bg-hover) !important;--rct-color-focustree-item-hover-text: var(--text-primary) !important;--rct-color-focustree-item-active-bg: var(--list-active-background) !important;--rct-color-focustree-item-active-text: var(--text-primary) !important;--rct-color-nonfocustree-item-selected-bg: var(--list-active-background) !important;--rct-color-nonfocustree-item-selected-text: var(--text-primary) !important;--rct-color-nonfocustree-item-focused-border: transparent !important;--rct-color-nonfocustree-item-hover-bg: var(--bg-hover) !important;--rct-color-nonfocustree-item-hover-text: var(--text-primary) !important;--rct-color-nonfocustree-item-active-bg: var(--list-active-background) !important;--rct-color-nonfocustree-item-active-text: var(--text-primary) !important;--rct-color-focustree-item-draggingover-bg: var(--bg-hover) !important;--rct-color-focustree-item-draggingover-color: var(--text-primary) !important;--rct-item-height: 22px !important;--rct-bar-color: var(--border-focus) !important;--rct-focus-outline: none !important}.solution-explorer li[data-rct-item-interactive=true]>div{background:transparent!important}.solution-explorer li[data-rct-item-interactive=true][data-rct-item-focus=true]>div,.solution-explorer li[data-rct-item-interactive=true]:focus>div,.solution-explorer li[data-rct-item-interactive=true]:focus-within>div{background:var(--list-active-background)!important;box-shadow:inset 2px 0 0 var(--border-focus)!important}.solution-explorer li[data-rct-item-interactive=true]:hover>div{background:var(--bg-hover)!important}.tree-item{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-primary);white-space:nowrap;flex:1;min-width:0;padding-right:8px}.tree-item-icon{flex-shrink:0;width:16px;height:16px;display:flex;align-items:center;justify-content:center}.tree-item-icon svg{width:16px;height:16px;stroke:currentColor}.solution-explorer .tree-item-icon .icon-folder,.solution-explorer .tree-item-icon .icon-folder-open,.solution-explorer .tree-item-icon .icon-workspace,.solution-explorer .tree-item-icon .icon-script,.solution-explorer .tree-item-icon .icon-variable,.solution-explorer .tree-item-icon .icon-settings,.solution-explorer .tree-item-icon .icon-settings-item,.solution-explorer .tree-item-icon .icon-deadband{color:var(--text-secondary)}.solution-explorer .tree-item-icon .icon-toggle-switch,.solution-explorer .tree-item-icon .icon-interfaces,.solution-explorer .tree-item-icon .icon-counter,.solution-explorer .tree-item-icon .icon-pid,.solution-explorer .tree-item-icon .icon-hydrometer{color:var(--accent-green)}.solution-explorer .tree-item-icon .icon-button,.solution-explorer .tree-item-icon .icon-hysteresis,.solution-explorer .tree-item-icon .icon-mocks-folder,.solution-explorer .tree-item-icon .icon-mock-device{color:var(--accent-purple)}.solution-explorer .tree-item-icon .icon-device,.solution-explorer .tree-item-icon .icon-spi-sensor{color:var(--accent-blue)}.solution-explorer .tree-item-icon .icon-digital-output,.solution-explorer .tree-item-icon .icon-duty-cycle,.solution-explorer .tree-item-icon .icon-pwm-output{color:var(--accent-orange)}.solution-explorer .tree-item-icon .icon-digital-input,.solution-explorer .tree-item-icon .icon-analog-input{color:var(--accent-blue)}.solution-explorer .tree-item-icon .icon-owtemp{color:var(--accent-red)}.solution-explorer .tree-item-icon .icon-generic,.solution-explorer .tree-item-icon .icon-timer,.solution-explorer .tree-item-icon .icon-alarm,.solution-explorer .tree-item-icon .icon-script-element,.solution-explorer .tree-item-icon .icon-chart,.solution-explorer .tree-item-icon .icon-profile{color:var(--text-primary)}.tree-item-state-icon{flex-shrink:0;width:12px;height:12px;display:flex;align-items:center;justify-content:center;margin-left:-2px}.tree-item-state-icon svg{width:12px;height:12px}.solution-explorer .tree-item-state-icon .script-state-stopped{opacity:.6;color:var(--text-muted)}.solution-explorer .tree-item-state-icon .script-state-running{color:var(--accent-green)}.solution-explorer .tree-item-state-icon .script-state-paused{color:var(--accent-orange)}.solution-explorer .tree-item-state-icon .script-state-loading{color:var(--accent-blue)}.solution-explorer .tree-item-state-icon .script-state-loading.animate-spin{animation:spin .8s linear infinite}.solution-explorer .tree-item-state-icon .device-state-connected{color:var(--accent-green)}.solution-explorer .tree-item-state-icon .device-state-disconnected{opacity:.6;color:var(--text-muted)}.solution-explorer .tree-item-state-icon .device-state-mock{color:var(--accent-purple)}.solution-explorer .tree-item-state-icon .mock-device-running{color:var(--accent-green)}.solution-explorer .tree-item-state-icon .mock-device-stopped{opacity:.6;color:var(--text-muted)}.tree-item-name{overflow:hidden;text-overflow:ellipsis}.tree-item[data-selected-workspace],.tree-item[data-selected-process],.tree-item[data-selected-setting],.tree-item[data-selected-device]{background-color:var(--list-active-background)!important}.solution-explorer .rct-tree-item-title-container:has(.tree-item[data-selected-workspace]),.solution-explorer .rct-tree-item-title-container:has(.tree-item[data-selected-process]),.solution-explorer .rct-tree-item-title-container:has(.tree-item[data-selected-setting]),.solution-explorer .rct-tree-item-title-container:has(.tree-item[data-selected-device]){background-color:var(--list-active-background)!important;background:var(--list-active-background)!important;box-shadow:inset 2px 0 0 var(--border-focus)!important}.solution-explorer .rct-tree-item-title-container:has(.tree-item[data-selected-workspace]):hover,.solution-explorer .rct-tree-item-title-container:has(.tree-item[data-selected-process]):hover,.solution-explorer .rct-tree-item-title-container:has(.tree-item[data-selected-setting]):hover,.solution-explorer .rct-tree-item-title-container:has(.tree-item[data-selected-device]):hover{background-color:var(--list-active-hover-background)!important;background:var(--list-active-hover-background)!important}.tree-item-workspaces-folder .tree-item-icon svg,.tree-item-processes-folder .tree-item-icon svg{fill:var(--accent-yellow)}.tree-item-workspace .tree-item-icon svg{fill:var(--accent-blue)}.tree-item-folder .tree-item-icon svg,.tree-item-script-folder .tree-item-icon svg,.tree-item-workspace-folder .tree-item-icon svg{fill:var(--accent-yellow)}.tree-item-settings-folder .tree-item-icon svg,.tree-item-interfaces-folder .tree-item-icon svg{fill:var(--accent-yellow)}.tree-item-mocks-folder .tree-item-icon svg{fill:var(--accent-yellow)}.tree-item-process .tree-item-icon svg{fill:var(--accent-orange)}.tree-item-element .tree-item-icon svg{fill:var(--accent-purple)}.solution-explorer .rct-tree-item-arrow{width:16px;height:22px;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.solution-explorer .rct-tree-item-arrow:hover{color:var(--text-primary)}.solution-explorer .rct-tree-item-arrow svg{width:16px;height:16px}.tree-item-menu-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;min-width:24px;min-height:24px;aspect-ratio:1;margin-left:auto;padding:0;flex-shrink:0;align-self:center;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;opacity:0;transition:opacity var(--transition-fast),background var(--transition-fast),color var(--transition-fast)}.tree-item-menu-btn svg{width:14px;height:14px}.tree-item:hover .tree-item-menu-btn{opacity:1}.tree-item-menu-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.tree-item-menu-btn:active{background:var(--bg-active);color:var(--text-primary)}@media(max-width:768px){.solution-explorer{font-size:14px;-webkit-overflow-scrolling:touch}.solution-explorer .rct-tree-item-title-container{padding:10px 0;min-height:var(--touch-target-min)}.solution-explorer,.solution-explorer [data-rct-tree],.solution-explorer .rct-tree-root{--rct-item-height: 44px !important}.tree-item{gap:10px;font-size:14px;padding-right:12px}.tree-item-icon{width:20px;height:20px}.tree-item-icon svg{width:20px;height:20px}.tree-item-state-icon{width:14px;height:14px}.tree-item-state-icon svg{width:14px;height:14px}.solution-explorer .rct-tree-item-arrow{width:32px;height:44px}.solution-explorer .rct-tree-item-arrow svg{width:20px;height:20px}.solution-explorer ul ul{padding-left:20px}.tree-item-menu-btn{opacity:1;width:36px;height:36px;min-width:36px;min-height:36px}.tree-item-menu-btn svg{width:16px;height:16px}.tree-item-menu-btn:hover{background:transparent}.tree-item-menu-btn:active{background:var(--bg-hover);color:var(--text-primary)}.solution-explorer .rct-tree-item-title-container:hover{background-color:transparent!important}.solution-explorer .rct-tree-item-title-container:active{background-color:var(--bg-hover)!important}.solution-explorer li[data-rct-item-interactive=true]:hover>div{background:transparent!important}.solution-explorer li[data-rct-item-interactive=true]:active>div{background:var(--bg-hover)!important}}@media(max-width:480px){.solution-explorer,.tree-item{font-size:15px}}.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.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{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.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{left:50%;margin-left:-10px;cursor:ns-resize}.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{position:absolute;width:20px;height:20px;background-repeat:no-repeat;background-origin:content-box;box-sizing:border-box;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+);background-position:bottom right;padding:0 3px 3px 0}.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-resizable-handle-w,.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.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{left:50%;margin-left:-10px;cursor:ns-resize}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.text-input-flyout-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;display:flex;align-items:center;justify-content:center;background:#0000008c;animation:tif-fadeIn .15s ease}@keyframes tif-fadeIn{0%{opacity:0}to{opacity:1}}.text-input-flyout-panel{display:flex;flex-direction:column;width:340px;max-width:94vw;border-radius:16px;background:var(--bg-secondary, #252526);border:1px solid var(--border-color, #404040);box-shadow:0 12px 40px #00000080;overflow:hidden}.text-input-flyout-header{padding:16px 16px 8px;text-align:center}.text-input-flyout-label{font-size:14px;font-weight:600;color:var(--text-secondary, #9a9a9a);margin:0}.text-input-flyout-input-wrap{padding:16px}.text-input-flyout-input{width:100%;font-size:18px;padding:12px 16px;border:1px solid var(--border-color, #404040);border-radius:8px;background:var(--input-background, #1e1e1e);color:var(--text-primary, #d4d4d4);box-sizing:border-box}.text-input-flyout-input:focus{border-color:var(--border-focus, #007acc);outline:none}.text-input-flyout-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px 16px 16px}.text-input-flyout-btn-cancel,.text-input-flyout-btn-confirm{height:56px;font-size:16px;font-weight:700;border:none;border-radius:10px;cursor:pointer}.text-input-flyout-btn-cancel{background:var(--bg-tertiary, #2d2d2d);color:var(--text-secondary, #9a9a9a);border:1px solid var(--border-color, #404040)}.text-input-flyout-btn-confirm{background:var(--accent-primary, #007acc);color:#fff}.tsp-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;display:flex;align-items:center;justify-content:center;background:#0000008c;animation:tsp-fadeIn .15s ease}@keyframes tsp-fadeIn{0%{opacity:0}to{opacity:1}}.tsp-panel{display:flex;flex-direction:column;width:340px;max-width:94vw;max-height:94vh;border-radius:16px;background:var(--bg-secondary, #252526);border:1px solid var(--border-color, #404040);box-shadow:0 12px 40px #00000080;overflow:hidden;animation:tsp-slideUp .2s ease}@keyframes tsp-slideUp{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}.tsp-header{padding:16px 16px 8px;text-align:center}.tsp-label{font-size:14px;font-weight:600;color:var(--text-secondary, #9a9a9a);margin:0}.tsp-display{padding:8px 16px 12px}.tsp-value{width:100%;text-align:center;font-size:28px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-primary, #d4d4d4);background:var(--bg-primary, #1e1e1e);border:1px solid var(--border-color, #404040);border-radius:8px;padding:12px 16px;min-height:60px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none}.tsp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:8px 16px}.tsp-btn{display:flex;align-items:center;justify-content:center;height:64px;font-size:22px;font-weight:600;border:1px solid var(--border-color, #404040);border-radius:10px;background:var(--bg-tertiary, #2d2d2d);color:var(--text-primary, #d4d4d4);cursor:pointer;transition:background .1s ease,transform .08s ease;-webkit-user-select:none;user-select:none;touch-action:manipulation}.tsp-btn:hover{background:var(--bg-hover, #343434)}.tsp-btn:active{background:var(--bg-active, #3a3a3a);transform:scale(.96)}.tsp-btn-placeholder{visibility:hidden;pointer-events:none}.tsp-btn-backspace,.tsp-btn-clear{height:52px;font-size:15px;font-weight:600}.tsp-btn-backspace svg{width:24px;height:24px;fill:currentColor}.tsp-util-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:4px 16px 8px}.tsp-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px 16px 16px}.tsp-btn-cancel,.tsp-btn-confirm{height:56px;font-size:16px;font-weight:700;border:none;border-radius:10px;cursor:pointer;transition:background .1s ease,transform .08s ease;-webkit-user-select:none;user-select:none;touch-action:manipulation}.tsp-btn-cancel{background:var(--bg-tertiary, #2d2d2d);color:var(--text-secondary, #9a9a9a);border:1px solid var(--border-color, #404040)}.tsp-btn-cancel:hover{background:var(--bg-hover, #343434)}.tsp-btn-cancel:active{transform:scale(.97)}.tsp-btn-confirm{background:var(--accent-primary, #007acc);color:#fff}.tsp-btn-confirm:hover{background:var(--accent-hover, #1a8ad4)}.tsp-btn-confirm:active{transform:scale(.97)}.dtp-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;display:flex;align-items:center;justify-content:center;background:#0000008c;animation:dtp-fadeIn .15s ease}@keyframes dtp-fadeIn{0%{opacity:0}to{opacity:1}}.dtp-panel{display:flex;flex-direction:column;width:440px;max-width:94vw;max-height:94vh;border-radius:16px;background:var(--bg-secondary, #252526);border:1px solid var(--border-color, #404040);box-shadow:0 12px 40px #00000080;overflow:hidden}.dtp-header{padding:8px 8px 4px;text-align:center}.dtp-label{font-size:14px;font-weight:600;color:var(--text-secondary, #9a9a9a);margin:0}.dtp-selected-display{width:100%;text-align:center;font-size:18px;font-weight:600;color:var(--text-primary, #d4d4d4);padding:4px 0}.dtp-wheels{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:8px 4px}.dtp-section{display:flex;gap:0;width:100%}.dtp-wheel-col{display:flex;flex-direction:column;align-items:stretch;flex:1;min-width:0}.dtp-wheel-label{font-size:11px;font-weight:600;color:var(--text-secondary, #9a9a9a);margin-bottom:4px;text-transform:uppercase;text-align:center}.dtp-wheel-list{width:100%;overflow-y:auto;overflow-x:hidden;scroll-snap-type:y mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--text-secondary, #9a9a9a) transparent}.dtp-wheel-list::-webkit-scrollbar{width:6px}.dtp-wheel-list::-webkit-scrollbar-track{background:transparent}.dtp-wheel-list::-webkit-scrollbar-thumb{background:var(--text-secondary, #9a9a9a);border-radius:3px}.dtp-wheel-list::-webkit-scrollbar-thumb:hover{background:var(--text-primary, #d4d4d4)}.dtp-wheel-item{display:flex;align-items:center;justify-content:center;scroll-snap-align:center;font-size:16px;font-weight:600;color:var(--text-secondary, #9a9a9a);cursor:pointer;touch-action:manipulation;width:100%;min-width:0;padding:0;border:none;background:none}.dtp-wheel-item.dtp-selected{font-size:20px;font-weight:700;color:var(--text-primary, #d4d4d4)}.dtp-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px 8px 12px}.dtp-actions:has(.dtp-btn-back){grid-template-columns:1fr 1fr 1fr}.dtp-btn-back,.dtp-btn-cancel,.dtp-btn-confirm{height:56px;font-size:16px;font-weight:700;border:none;border-radius:10px;cursor:pointer}.dtp-btn-back{background:var(--bg-tertiary, #2d2d2d);color:var(--text-secondary, #9a9a9a);border:1px solid var(--border-color, #404040);padding:0 16px}.dtp-btn-back:hover{background:var(--bg-hover, #343434)}.dtp-btn-back:active{transform:scale(.97)}.dtp-btn-cancel{background:var(--bg-tertiary, #2d2d2d);color:var(--text-secondary, #9a9a9a);border:1px solid var(--border-color, #404040)}.dtp-btn-cancel:hover{background:var(--bg-hover, #343434)}.dtp-btn-cancel:active{transform:scale(.97)}.dtp-btn-confirm{background:var(--accent-primary, #007acc);color:#fff}.dtp-btn-confirm:hover{background:var(--accent-hover, #1a8ad4)}.dtp-btn-confirm:active{transform:scale(.97)}.selection-flyout-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;display:flex;align-items:center;justify-content:center;background:#0000008c;animation:sf-fadeIn .15s ease}@keyframes sf-fadeIn{0%{opacity:0}to{opacity:1}}.selection-flyout-panel{display:flex;flex-direction:column;width:300px;max-width:94vw;max-height:80vh;border-radius:12px;background:var(--bg-secondary, #252526);border:1px solid var(--border-color, #404040);box-shadow:0 12px 40px #00000080;overflow:hidden}.selection-flyout-header{padding:14px 16px 6px;text-align:center;flex-shrink:0}.selection-flyout-label{font-size:13px;font-weight:600;color:var(--text-secondary, #9a9a9a);margin:0}.selection-flyout-dropdown{padding:0 12px;flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.selection-flyout-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:40px;padding:8px 12px;margin-bottom:0;font-size:15px;font-weight:500;color:var(--text-primary, #d4d4d4);background:var(--bg-tertiary, #2d2d2d);border:1px solid var(--border-color, #404040);border-radius:8px 8px 0 0;border-bottom-color:var(--border-color, #404040);box-sizing:border-box;pointer-events:none;-webkit-user-select:none;user-select:none}.selection-flyout-trigger-value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;color:var(--text-primary, #d4d4d4)}.selection-flyout-trigger-chevron{flex-shrink:0;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid var(--text-muted, #888);margin-top:2px;opacity:.9}.selection-flyout-menu{flex:1 1 auto;min-height:0;max-height:min(240px,45vh);overflow-y:auto;padding:4px;margin-top:-1px;background:var(--bg-tertiary, #2d2d2d);border:1px solid var(--border-color, #404040);border-top:1px solid rgba(255,255,255,.06);border-radius:0 0 8px 8px;-webkit-overflow-scrolling:touch}.selection-flyout-option{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:36px;padding:6px 10px;margin:0;font-size:14px;font-weight:400;font-family:inherit;color:var(--text-primary, #d4d4d4);background:transparent;border:none;border-radius:6px;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;text-align:left;box-sizing:border-box;transition:background .08s ease}.selection-flyout-option:hover,.selection-flyout-option:focus-visible{outline:none;background:#ffffff0f}.selection-flyout-option--active{background:#007acc38;color:var(--text-primary, #e8e8e8)}.selection-flyout-option--active:hover,.selection-flyout-option--active:focus-visible{background:#007acc4d}.selection-flyout-option-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selection-flyout-option-check{flex-shrink:0;margin-left:8px;font-size:13px;font-weight:700;color:var(--accent-primary, #3794ff)}.selection-flyout-empty{padding:16px 12px;text-align:center;color:var(--text-muted, #666);font-size:13px}.selection-flyout-actions{padding:10px 12px 12px;flex-shrink:0}.selection-flyout-btn-cancel{width:100%;height:44px;font-size:15px;font-weight:600;border:1px solid var(--border-color, #404040);border-radius:8px;cursor:pointer;background:var(--bg-tertiary, #2d2d2d);color:var(--text-secondary, #9a9a9a);touch-action:manipulation;-webkit-user-select:none;user-select:none;transition:background .1s ease}.selection-flyout-btn-cancel:hover,.selection-flyout-btn-cancel:focus-visible{outline:none;background:#ffffff0d}.numeric-keypad-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;display:flex;align-items:center;justify-content:center;background:#0000008c;animation:nk-fadeIn .15s ease}@keyframes nk-fadeIn{0%{opacity:0}to{opacity:1}}.numeric-keypad-panel{display:flex;flex-direction:column;width:340px;max-width:94vw;max-height:94vh;border-radius:16px;background:var(--bg-secondary, #252526);border:1px solid var(--border-color, #404040);box-shadow:0 12px 40px #00000080;overflow:hidden;animation:nk-slideUp .2s ease}@keyframes nk-slideUp{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}.numeric-keypad-header{padding:16px 16px 8px;text-align:center}.numeric-keypad-label{font-size:14px;font-weight:600;color:var(--text-secondary, #9a9a9a);letter-spacing:.02em;margin:0}.numeric-keypad-display{padding:8px 16px 12px}.numeric-keypad-value{width:100%;text-align:right;font-size:32px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-primary, #d4d4d4);background:var(--bg-primary, #1e1e1e);border:1px solid var(--border-color, #404040);border-radius:8px;padding:12px 16px;min-height:60px;box-sizing:border-box;outline:none;caret-color:transparent;cursor:default;-webkit-user-select:none;user-select:none}.numeric-keypad-value:focus{border-color:var(--border-focus, #007acc)}.numeric-keypad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:8px 16px}.numeric-keypad-btn{display:flex;align-items:center;justify-content:center;height:64px;font-size:22px;font-weight:600;border:1px solid var(--border-color, #404040);border-radius:10px;background:var(--bg-tertiary, #2d2d2d);color:var(--text-primary, #d4d4d4);cursor:pointer;transition:background .1s ease,transform .08s ease;-webkit-user-select:none;user-select:none;touch-action:manipulation}.numeric-keypad-btn:hover{background:var(--bg-hover, #343434)}.numeric-keypad-btn:active{background:var(--bg-active, #3a3a3a);transform:scale(.96)}.numeric-keypad-btn.nk-dot:disabled,.numeric-keypad-btn.nk-sign:disabled{opacity:.3;cursor:not-allowed}.numeric-keypad-btn.nk-sign:disabled:active,.numeric-keypad-btn.nk-dot:disabled:active{transform:none}.numeric-keypad-util-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:4px 16px 8px}.numeric-keypad-btn.nk-backspace,.numeric-keypad-btn.nk-clear{height:52px;font-size:15px;font-weight:600}.numeric-keypad-btn.nk-backspace svg{width:24px;height:24px;fill:currentColor}.numeric-keypad-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px 16px 16px}.numeric-keypad-btn-cancel,.numeric-keypad-btn-confirm{display:flex;align-items:center;justify-content:center;height:56px;font-size:16px;font-weight:700;border:none;border-radius:10px;cursor:pointer;transition:background .1s ease,transform .08s ease;-webkit-user-select:none;user-select:none;touch-action:manipulation}.numeric-keypad-btn-cancel{background:var(--bg-tertiary, #2d2d2d);color:var(--text-secondary, #9a9a9a);border:1px solid var(--border-color, #404040)}.numeric-keypad-btn-cancel:hover{background:var(--bg-hover, #343434)}.numeric-keypad-btn-cancel:active{transform:scale(.97)}.numeric-keypad-btn-confirm{background:var(--accent-primary, #007acc);color:#fff}.numeric-keypad-btn-confirm:hover{background:var(--accent-hover, #1a8ad4)}.numeric-keypad-btn-confirm:active{transform:scale(.97)}.numeric-keypad-btn-confirm:disabled{opacity:.5;cursor:not-allowed}.numeric-keypad-btn-confirm:disabled:active{transform:none}.custom-element-host{position:relative;width:100%;height:100%;overflow:hidden}.custom-element-iframe{width:100%;height:100%;border:none;background:transparent;display:block;pointer-events:auto}.custom-element-host.select-mode .custom-element-iframe{pointer-events:none}.custom-element-host.device-disconnected .custom-element-iframe{filter:grayscale(80%) opacity(.35);pointer-events:none}.custom-element-loading{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--text-muted);font-size:12px}.custom-element-disconnected-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000026;z-index:5;pointer-events:none}.disconnected-notice{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:var(--bg-tertiary, rgba(30, 30, 30, .85));border:1px solid var(--border-color, rgba(255, 255, 255, .15));color:var(--text-muted, #a8a8a8);font-size:12px;font-weight:600;letter-spacing:.02em}.disconnected-notice svg{width:14px;height:14px;display:block;fill:var(--accent-red, #f14c4c)}.custom-element-host.element-disabled .custom-element-iframe{filter:grayscale(60%) opacity(.4);pointer-events:none}.custom-element-disabled-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000026;z-index:5}.disabled-notice{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:var(--bg-tertiary, rgba(30, 30, 30, .85));border:1px solid var(--border-color, rgba(255, 255, 255, .15));color:var(--text-muted, #a8a8a8);font-size:12px;font-weight:600;letter-spacing:.02em}.disabled-notice svg{width:14px;height:14px;display:block;fill:var(--accent-yellow, #dcdcaa)}.custom-element-host.user-locked .custom-element-iframe{pointer-events:none}.custom-element-locked-badge{position:absolute;bottom:6px;right:6px;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;background:var(--bg-tertiary, rgba(30, 30, 30, .85));border:1px solid var(--border-color, rgba(255, 255, 255, .15));z-index:5;opacity:0;transition:opacity .15s ease}.custom-element-host:hover .custom-element-locked-badge,.custom-element-host.touch-mode .custom-element-locked-badge{opacity:1}.custom-element-locked-badge svg{width:14px;height:14px;display:block;fill:var(--text-muted, #a8a8a8)}.custom-element-host.element-invisible .custom-element-iframe{filter:grayscale(40%) opacity(.3);pointer-events:none}.custom-element-invisible-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:repeating-linear-gradient(-45deg,transparent,transparent 8px,rgba(128,128,128,.06) 8px,rgba(128,128,128,.06) 16px);z-index:5}.invisible-notice{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:var(--bg-tertiary, rgba(30, 30, 30, .85));border:1px solid var(--border-color, rgba(255, 255, 255, .15));color:var(--text-muted, #a8a8a8);font-size:12px;font-weight:600;letter-spacing:.02em}.invisible-notice svg{width:14px;height:14px;display:block;fill:var(--text-muted, #a8a8a8)}.custom-element-hover-controls{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:flex-start;gap:6px;padding:6px;opacity:0;pointer-events:none;transition:opacity .15s ease;z-index:10}.custom-element-host:hover .custom-element-hover-controls,.custom-element-host.touch-mode .custom-element-hover-controls{opacity:1}.custom-element-drag-handle{display:flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0;border-radius:var(--radius-sm, 4px);background:none;color:var(--text-muted);cursor:grab;box-shadow:none;filter:none;pointer-events:auto}.custom-element-drag-handle.element-header{padding:0;min-height:0;background:none;border:none;border-bottom:none}.custom-element-drag-handle:active{cursor:grabbing}.custom-element-drag-handle svg{width:28px;height:28px;display:block;fill:currentColor}.custom-element-layer-controls{display:flex;align-items:center;gap:4px;margin-left:auto;pointer-events:auto}.custom-element-layer-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;flex-shrink:0;padding:0;border:none;border-radius:var(--radius-sm, 4px);background:none;color:var(--text-muted);cursor:pointer;box-shadow:none;filter:none}.custom-element-layer-btn:hover:not(:disabled){color:var(--text-secondary)}.custom-element-layer-btn:disabled{opacity:.45;cursor:not-allowed}.custom-element-layer-btn svg{width:22px;height:22px;display:block;fill:none;stroke:currentColor}.custom-element-edit-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;flex-shrink:0;padding:0;border:none;border-radius:var(--radius-sm, 4px);background:none;color:var(--text-muted);cursor:pointer;box-shadow:none;filter:none;pointer-events:auto}.custom-element-edit-btn:hover{color:var(--text-secondary)}.custom-element-edit-btn svg{width:24px;height:24px;display:block;fill:currentColor}.custom-element-enable-btn{display:inline-flex;align-items:center;justify-content:center;margin-top:6px;padding:4px 14px;font-size:11px;font-weight:600;line-height:1;border:1px solid var(--accent-green, #4ec9b0);border-radius:var(--radius-sm, 4px);background:transparent;color:var(--accent-green, #4ec9b0);cursor:pointer;transition:background .15s,color .15s;pointer-events:auto}.custom-element-enable-btn:hover:not(:disabled){background:var(--accent-green, #4ec9b0);color:#fff}.custom-element-enable-btn:disabled{opacity:.5;cursor:not-allowed}.custom-element-disable-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;flex-shrink:0;padding:0;border:none;border-radius:var(--radius-sm, 4px);background:none;color:var(--text-muted);cursor:pointer;box-shadow:none;filter:none;pointer-events:auto}.custom-element-disable-btn:hover:not(:disabled){color:var(--accent-red, #f14c4c)}.custom-element-disable-btn:disabled{opacity:.45;cursor:not-allowed}.custom-element-disable-btn svg{width:22px;height:22px;display:block;fill:currentColor}.canvas-controls{position:absolute;bottom:16px;right:16px;display:flex;align-items:center;gap:4px;padding:5px;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);z-index:1000;-webkit-user-select:none;user-select:none;opacity:0;transition:opacity var(--transition-smooth)}.canvas-controls:before{content:"";position:absolute;top:-20px;left:-20px;right:-20px;bottom:-20px;z-index:-1}.canvas-controls:hover{opacity:1}.canvas-controls--header{position:static;bottom:auto;right:auto;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border:none;border-radius:0;box-shadow:none;opacity:1;padding:0 0 0 8px;gap:2px}.canvas-controls--header:before{display:none}.canvas-control-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;min-width:28px;min-height:28px;aspect-ratio:1;flex-shrink:0;padding:0;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.canvas-control-btn svg{width:16px;height:16px;stroke:currentColor}.canvas-control-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.canvas-control-btn:active:not(:disabled){background:var(--bg-active)}.canvas-control-btn:disabled{opacity:.4;cursor:not-allowed}.canvas-control-toggle.enabled{color:var(--accent-green)}.canvas-control-toggle.disabled{color:var(--text-muted);opacity:.7}.canvas-control-toggle.enabled:hover,.canvas-control-toggle.disabled:hover{background:var(--bg-hover)}.canvas-control-toggle.disabled:hover{color:var(--text-secondary);opacity:1}.canvas-control-zoom{min-width:48px;height:28px;padding:0 8px;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-mono);font-size:11px;cursor:pointer;transition:background-color var(--transition-fast)}.canvas-control-zoom:hover{background:var(--bg-hover)}.canvas-control-zoom:active{background:var(--bg-active)}.canvas-controls-divider{width:1px;height:20px;background:var(--border-color);margin:0 4px}.canvas-controls-tool-selector{display:flex;align-items:center;gap:2px}.canvas-tool-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;min-width:28px;min-height:28px;aspect-ratio:1;flex-shrink:0;padding:0;border:none;border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.canvas-tool-btn.active{background:var(--accent-primary);color:#fff}.canvas-tool-btn:not(.active):hover{background:var(--bg-hover);color:var(--text-primary)}.canvas-tool-btn:not(.active):active{background:var(--bg-active)}@media(pointer:coarse){.canvas-controls{padding:6px;gap:6px}.canvas-control-btn{width:36px;height:36px}.canvas-control-btn svg{width:20px;height:20px}.canvas-control-zoom{min-width:56px;height:36px;font-size:13px}.canvas-controls-divider{height:24px}}@media(max-width:768px){.canvas-controls{bottom:calc(var(--mobile-nav-height) + 16px);right:12px;opacity:1;padding:6px;gap:4px;border-radius:var(--radius-xl)}.canvas-controls:before{display:none}.canvas-control-btn{width:var(--touch-target-min);height:var(--touch-target-min);min-width:var(--touch-target-min);min-height:var(--touch-target-min);aspect-ratio:1}.canvas-control-btn svg{width:20px;height:20px}.canvas-control-zoom{min-width:52px;height:var(--touch-target-min);font-size:12px;padding:0 10px}.canvas-controls-divider{height:28px;margin:0 2px}.canvas-control-btn:hover:not(:disabled){background:transparent;color:var(--text-secondary)}.canvas-control-btn:active:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}}@media(max-width:480px){.canvas-controls{right:8px;padding:4px}.canvas-control-btn{width:36px;height:36px}.canvas-control-zoom{min-width:44px;height:36px;font-size:11px;padding:0 6px}}.selection-frame-border{position:absolute;top:0;right:0;bottom:0;left:0;border:1.5px solid var(--accent-primary, #569cd6);border-radius:2px;pointer-events:none}.selection-handle{background:#fff;border:1.5px solid var(--accent-primary, #569cd6);border-radius:2px;box-shadow:0 0 2px #0003;z-index:10}.selection-handle:hover{background:var(--accent-primary, #569cd6)}.selection-rotation-handle{background:#fff;border:1.5px solid var(--accent-primary, #569cd6);border-radius:50%;box-shadow:0 0 2px #0003;z-index:10}.selection-rotation-handle:hover{background:var(--accent-primary, #569cd6)}.selection-rotation-line{background:var(--accent-primary, #569cd6);opacity:.5;pointer-events:none}@media(pointer:coarse){.selection-handle,.selection-rotation-handle{min-width:20px;min-height:20px}}.element-bar-actions{display:none}@media(pointer:fine){.element-bar-actions{display:flex;align-items:center;gap:2px;padding:0 8px;border-right:1px solid var(--border-color);margin-right:8px}.element-bar-action-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:var(--bg-tertiary);border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.element-bar-action-btn svg{width:16px;height:16px;fill:none;stroke:currentColor}.element-bar-action-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.element-bar-action-btn:active:not(:disabled){background:var(--bg-active)}.element-bar-action-btn:disabled{opacity:.4;cursor:not-allowed}.element-bar-action-btn--primary{color:var(--accent-primary)}.element-bar-action-btn--primary:hover:not(:disabled){background:var(--accent-primary);color:#fff}}.element-pill-bar-portal{display:flex;align-items:center;justify-content:center;padding:4px 8px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--shadow-md)}.element-pill-bar-portal .element-bar-actions{display:flex;border-right:none;margin-right:0;padding:0}@media(pointer:coarse){.element-pill-bar-portal .element-bar-action-btn{display:flex;align-items:center;justify-content:center;min-width:36px;min-height:36px;width:36px;height:36px;padding:0;background:var(--bg-tertiary);border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.element-pill-bar-portal .element-bar-action-btn:hover:not(:disabled),.element-pill-bar-portal .element-bar-action-btn:active:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.element-pill-bar-portal .element-bar-action-btn:disabled{opacity:.4;cursor:not-allowed}.element-pill-bar-portal .element-bar-action-btn--primary{color:var(--accent-primary)}.element-pill-bar-portal .element-bar-action-btn--primary:hover:not(:disabled),.element-pill-bar-portal .element-bar-action-btn--primary:active:not(:disabled){background:var(--accent-primary);color:#fff}.element-pill-bar-portal .element-bar-action-btn svg{width:18px;height:18px;fill:none;stroke:currentColor}}.dashboard{position:relative;height:100%;width:100%;overflow:hidden;background:var(--bg-primary);touch-action:none;user-select:none;-webkit-user-select:none}.dashboard.dashboard--with-header{display:flex;flex-direction:column}.dashboard-header{display:flex;align-items:center;justify-content:center;flex-shrink:0;min-height:40px;padding:0 12px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);z-index:10;transition:padding-right .25s cubic-bezier(.4,0,.2,1)}.dashboard--drawer-open .dashboard-header{padding-right:492px}.dashboard-header-spacer{flex:1}.dashboard-canvas-area{flex:1;min-height:0;position:relative;overflow:hidden;touch-action:none}body:has([class*=modal-overlay]) .dashboard{touch-action:auto}.dashboard.tool-hand{cursor:grab}.dashboard.tool-hand.panning{cursor:grabbing}.dashboard.tool-hand .element-container{cursor:grab}.dashboard.tool-hand .element-container.element-user-control{cursor:default}.dashboard.tool-hand.panning .element-container.element-user-control{cursor:grabbing}.dashboard.tool-hand .element-container:not(.element-user-control) .custom-element-iframe{pointer-events:none}.dashboard.tool-select{cursor:default}.dashboard.tool-select .element-container{cursor:move}.dashboard.tool-select.panning{cursor:grabbing}.dashboard-canvas-area .canvas-viewport{position:absolute;top:0;left:0;width:16000px;height:16000px;padding:12px;will-change:transform;contain:layout style;touch-action:none}.dashboard-grid{min-height:100%}.dashboard-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:12px;color:var(--text-muted)}.dashboard-loading .loading-spinner{width:32px;height:32px;border:3px solid var(--border-color, rgba(128, 128, 128, .3));border-top-color:var(--accent-blue, #569cd6);border-radius:50%;animation:dashboard-spin .7s linear infinite;-webkit-animation:dashboard-spin .7s linear infinite;flex-shrink:0}@keyframes dashboard-spin{to{transform:rotate(360deg)}}@-webkit-keyframes dashboard-spin{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.dashboard-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;color:var(--text-muted);padding:40px}.dashboard-empty .empty-icon{width:48px;height:48px;margin-bottom:16px;opacity:.3}.dashboard-empty .empty-icon svg{stroke:currentColor;width:100%;height:100%;fill:currentColor}.dashboard-empty h3{font-size:14px;font-weight:500;margin-bottom:8px;color:var(--text-secondary)}.dashboard-empty p{font-size:12px;max-width:280px;line-height:1.5}.element-container{position:relative;display:flex;flex-direction:column;height:100%;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-xs);transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}.element-container:hover{border-color:var(--text-muted);box-shadow:var(--shadow-sm)}.element-container.element-selected{outline:none;z-index:99998!important}.element-container.element-container--custom{background:transparent;border:none;box-shadow:none;border-radius:0}.element-container.element-container--custom:hover{border-color:transparent;box-shadow:none}.element-layer-controls{position:absolute;top:6px;right:6px;display:flex;align-items:center;gap:4px;opacity:0;pointer-events:none;transition:opacity .15s ease;z-index:20}.element-container:hover .element-layer-controls{opacity:1;pointer-events:auto}.element-layer-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:var(--radius-sm, 4px);padding:0;background:var(--bg-secondary);color:var(--text-muted);cursor:pointer}.element-layer-btn:hover:not(:disabled){color:var(--text-primary);background:var(--bg-hover)}.element-layer-btn:disabled{opacity:.45;cursor:not-allowed}.element-layer-btn svg{width:14px;height:14px;fill:currentColor}.dashboard .react-grid-layout,.dashboard .react-grid-item,.dashboard .react-grid-item.cssTransforms{transition:none!important}.react-grid-item.react-grid-placeholder{background:var(--accent-primary);opacity:.15;border-radius:var(--radius-lg);transform:rotate(var(--drag-placeholder-rotation, 0deg));transform-origin:center center}.react-grid-item>.react-resizable-handle{background:none;width:36px;height:36px}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:6px;bottom:6px;width:16px;height:16px;border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);opacity:0;transition:opacity .15s ease}.react-grid-item:hover>.react-resizable-handle:after{opacity:1}.alarm-audio-banner{position:absolute;top:48px;right:12px;z-index:30;display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);box-shadow:var(--shadow-sm)}.alarm-audio-banner .btn{padding:6px 10px;border:1px solid var(--accent-primary);border-radius:var(--radius-md);background:var(--accent-primary);color:#fff;cursor:pointer}.alarm-audio-banner .btn:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.react-grid-item.react-draggable-dragging,.react-grid-item.resizing{z-index:99999!important}@media(max-width:768px){.dashboard-header{min-height:40px;padding:0 8px}.dashboard--drawer-open .dashboard-header{padding-right:8px}.dashboard-header .dashboard-header-spacer{display:none}.dashboard-empty{padding:24px}.dashboard-empty .empty-icon{width:40px;height:40px;margin-bottom:12px}.dashboard-empty h3{font-size:16px}.dashboard-empty p{font-size:13px;max-width:260px}.element-container{border-radius:var(--radius-xl)}.element-layer-controls{opacity:1;pointer-events:auto}.react-grid-item>.react-resizable-handle{width:56px;height:56px}.react-grid-item>.react-resizable-handle:after{right:10px;bottom:10px;width:20px;height:20px;border-right-width:3px;border-bottom-width:3px;opacity:.6}.dashboard.tool-select .react-grid-item>.react-resizable-handle:after{opacity:1}}@media(pointer:coarse){.element-container .element-header{min-height:40px;cursor:grab}.element-container .element-header:active{cursor:grabbing}}.data-explorer-view{display:flex;flex-direction:column;height:100%;width:100%;background:var(--bg-primary);color:var(--text-primary);overflow:hidden}.data-explorer-view.fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999}.data-explorer-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;opacity:.7}.data-explorer-spinner{width:32px;height:32px;border:3px solid var(--border-subtle);border-top-color:var(--accent-primary);border-radius:50%;animation:de-spin .8s linear infinite}@keyframes de-spin{to{transform:rotate(360deg)}}.data-explorer-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.data-explorer-back-btn{padding:6px 16px;background:var(--accent-primary);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:13px}.data-explorer-back-btn:hover{background:var(--accent-hover)}.data-explorer-toolbar{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-shrink:0;min-height:40px}.de-toolbar-title{font-weight:600;font-size:14px;color:var(--text-primary);margin-right:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.de-toolbar-type-badge{font-size:11px;padding:2px 8px;border-radius:10px;background:var(--bg-active);color:var(--text-secondary);white-space:nowrap}.de-toolbar-separator{width:1px;height:20px;background:var(--border-color);margin:0 4px}.de-toolbar-spacer{flex:1}.de-toolbar-time-presets{display:flex;gap:2px;background:var(--bg-tertiary);border-radius:4px;padding:2px}.de-time-preset-btn{padding:3px 10px;background:transparent;border:none;border-radius:3px;color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all .15s}.de-time-preset-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.de-time-preset-btn.active{background:var(--accent-primary);color:#fff}.de-toolbar-btn{display:flex;align-items:center;justify-content:center;padding:4px 8px;background:transparent;border:1px solid var(--border-color);border-radius:4px;color:var(--text-secondary);cursor:pointer;font-size:12px;gap:4px;transition:all .15s}.de-toolbar-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-focus)}.de-toolbar-btn svg{width:14px;height:14px;stroke:currentColor}.de-toolbar-btn svg.animate-spin{animation:de-spin .8s linear infinite}.de-toolbar-btn.loading{opacity:.6;pointer-events:none}.de-toolbar-close-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:transparent;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;font-size:16px}.de-toolbar-close-btn svg{stroke:currentColor}.de-toolbar-close-btn:hover{background:var(--bg-hover);color:var(--accent-red)}.data-explorer-content{flex:1;overflow:auto;padding:8px;min-height:0}.data-explorer-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:12px;text-align:center;color:var(--text-secondary)}.empty-state-icon{opacity:.3;margin-bottom:8px}.data-explorer-empty-state h3{margin:0;font-size:18px;font-weight:600;color:var(--text-primary)}.data-explorer-empty-state p{margin:0;font-size:14px}.empty-state-btn{margin-top:8px;padding:8px 20px;background:var(--accent-primary);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500}.empty-state-btn:hover{background:var(--accent-hover)}.de-chart-panel{width:100%;height:100%;position:relative}.de-chart-panel canvas{width:100%!important;height:100%!important}.de-stacked-view{display:flex;flex-direction:column;height:100%;min-height:0}.de-stacked-panel{flex:1;min-height:120px;position:relative;border-radius:4px;overflow:hidden}.de-stacked-panel.bordered{border:1px solid var(--border-subtle)}.de-panel-header{padding:4px 12px;font-size:12px;font-weight:600;color:var(--text-secondary);background:var(--bg-secondary);border-bottom:1px solid var(--border-subtle)}.de-panel-chart{height:calc(100% - 28px);position:relative}.de-panel-chart.no-header{height:100%}.de-grid-view{display:grid;height:100%;min-height:0}.de-grid-tile{position:relative;overflow:hidden}.de-grid-tile.bordered{border:1px solid var(--border-subtle)}.de-tile-header{padding:4px 10px;font-size:11px;font-weight:600;color:var(--text-secondary);background:var(--bg-secondary);border-bottom:1px solid var(--border-subtle);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.de-tile-chart{height:calc(100% - 26px);position:relative}.de-tile-chart.no-header{height:100%}.de-summary-view{display:flex;flex-direction:column;height:100%;gap:12px}.de-summary-cards{display:grid;gap:8px;flex-shrink:0}.de-summary-card{padding:12px 16px;border-radius:8px;background:#ffffff08;border:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:4px}.de-card-label{font-size:11px;color:var(--text-secondary);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.de-card-value{font-size:28px;font-weight:700;line-height:1.1}.de-card-stats{display:flex;gap:12px;font-size:11px;color:var(--text-muted);margin-top:2px}.de-card-stat{display:flex;gap:4px}.de-card-stat-label{text-transform:uppercase;font-weight:600;font-size:10px}.de-card-sparkline{height:24px;margin-top:4px;opacity:.6}.de-summary-chart{flex:1;min-height:200px}.dv-edit-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10000}.dv-edit-modal{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;width:720px;max-width:90vw;max-height:85vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #00000080}.dv-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-color)}.dv-modal-header h2{margin:0;font-size:16px;font-weight:600}.dv-modal-close{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:20px;padding:4px;border-radius:4px}.dv-modal-close:hover{color:var(--text-primary);background:var(--bg-hover)}.dv-modal-body{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:16px}.dv-field{display:flex;flex-direction:column;gap:6px}.dv-field label{font-size:12px;font-weight:600;color:var(--text-secondary)}.dv-field input,.dv-field select{padding:6px 10px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:13px}.dv-field input:focus,.dv-field select:focus{outline:none;border-color:var(--accent-primary)}.dv-view-type-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.dv-view-type-option{padding:12px;border:2px solid var(--border-subtle);border-radius:8px;cursor:pointer;transition:all .15s;background:var(--bg-primary)}.dv-view-type-option:hover{border-color:var(--border-color)}.dv-view-type-option.selected{border-color:var(--accent-primary);background:#0e639c1a}.dv-view-type-option h4{margin:0 0 4px;font-size:13px;font-weight:600}.dv-view-type-option p{margin:0;font-size:11px;color:var(--text-secondary)}.dv-channel-picker{display:flex;flex-direction:column;gap:8px}.dv-channel-search{padding:6px 10px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:13px}.dv-channel-search:focus{outline:none;border-color:var(--accent-primary)}.dv-channel-list{max-height:240px;overflow-y:auto;border:1px solid var(--border-subtle);border-radius:4px;background:var(--bg-primary)}.dv-channel-group{border-bottom:1px solid var(--border-subtle)}.dv-channel-group:last-child{border-bottom:none}.dv-channel-group-header{padding:6px 10px;font-size:11px;font-weight:600;color:var(--text-muted);background:var(--bg-tertiary);text-transform:uppercase;letter-spacing:.5px}.dv-channel-item{display:flex;align-items:center;gap:8px;padding:6px 10px;cursor:pointer;transition:background .1s}.dv-channel-item:hover{background:var(--bg-hover)}.dv-channel-item input[type=checkbox]{flex-shrink:0}.dv-channel-item-name{font-size:13px;flex:1}.dv-channel-item-type{font-size:11px;color:var(--text-muted)}.dv-channel-color{width:12px;height:12px;border-radius:2px;flex-shrink:0}.dv-modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid var(--border-color)}.dv-modal-btn{padding:6px 16px;border-radius:4px;font-size:13px;cursor:pointer;border:1px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-primary)}.dv-modal-btn:hover{background:var(--bg-hover)}.dv-modal-btn.primary{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.dv-modal-btn.primary:hover{background:var(--accent-hover)}.dv-time-section{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.dv-time-section select{padding:4px 8px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:12px}.dv-time-section input[type=number]{width:80px;padding:4px 8px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:12px}.dv-datetime-range{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.dv-datetime-range input[type=datetime-local]{padding:4px 8px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:12px}.de-toolbar-range-badge{font-size:12px;color:var(--text-secondary);padding:3px 10px}.dv-panels-config{display:flex;flex-direction:column;gap:8px}.dv-panel-config-item{padding:10px;border:1px solid var(--border-subtle);border-radius:6px;background:var(--bg-primary)}.dv-panel-config-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.dv-panel-config-header input{background:transparent;border:none;color:var(--text-primary);font-size:13px;font-weight:600;padding:0}.dv-panel-config-header input:focus{outline:none;border-bottom:1px solid var(--accent-primary)}.dv-panel-chart-type{display:flex;gap:4px}.dv-chart-type-btn{padding:2px 8px;border:1px solid var(--border-subtle);border-radius:3px;background:transparent;color:var(--text-secondary);font-size:11px;cursor:pointer}.dv-chart-type-btn.active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}@media(max-width:768px){.de-toolbar-title{max-width:120px}.de-toolbar-time-presets{display:none}.dv-edit-modal{width:95vw;max-height:90vh}.dv-view-type-grid{grid-template-columns:1fr}}.media-view{display:flex;flex-direction:column;gap:0;height:100%;min-height:0;padding:0;background:var(--bg-primary);color:var(--text-primary)}.media-view__toolbar{display:flex;align-items:center;justify-content:center;flex-shrink:0;min-height:40px;padding:0 12px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.media-view__toolbar-spacer{flex:1}.media-view__toolbar-controls{display:flex;align-items:center;gap:2px}.media-view__toolbar-divider{width:1px;height:20px;background:var(--border-color);margin:0 4px}.media-view__toolbar-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;min-width:28px;min-height:28px;padding:0;background:var(--bg-tertiary);border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:background-color .15s}.media-view__toolbar-btn svg{width:16px;height:16px;stroke:currentColor}.media-view__toolbar-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.media-view__toolbar-btn.active{background:var(--accent-primary);color:#fff}.media-view__toolbar-btn.active:hover:not(:disabled){background:var(--accent-primary);color:#fff}.media-view__toolbar-btn:disabled{opacity:.45;cursor:not-allowed}.media-view__toolbar-btn--primary{background:var(--accent-primary);color:#fff}.media-view__toolbar-btn--primary:hover:not(:disabled){background:var(--accent-hover);color:#fff}.media-view__content{flex:1;overflow-y:auto;padding:20px;min-height:0}.media-view__status{padding:10px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-secondary);text-align:center;color:var(--text-secondary);font-size:12px}.media-view__status--error{border-color:#b94a48;color:var(--accent-red, #c53030)}.media-view__table-wrap{min-height:0;overflow-y:auto;border:1px solid var(--border-subtle);border-radius:6px;background:var(--bg-secondary)}.media-view__table{width:100%;border-collapse:collapse;font-size:12px}.media-view__table th{text-align:left;padding:6px 8px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);font-weight:600;font-size:11px;position:sticky;top:0;z-index:1}.media-view__table td{padding:5px 8px;border-bottom:1px solid var(--border-subtle)}.media-view__table tr:hover td{background:var(--bg-hover)}.media-view__table-preview{width:32px;height:32px;border-radius:4px;overflow:hidden;background:var(--bg-tertiary, #1a1a1a);display:flex;align-items:center;justify-content:center}.media-view__table-preview img{width:100%;height:100%;object-fit:cover}.media-view__table-name,.media-view__table-path{display:block;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-view__table-name{font-weight:600}.media-view__table-path{font-size:11px;color:var(--text-muted)}.media-view__table-actions-col{width:1%;white-space:nowrap}.media-view__action-btn{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;min-width:24px;min-height:24px;border:1px solid transparent;border-radius:5px;font-size:11px;font-weight:500;background:transparent;color:var(--text-muted);cursor:pointer;transition:background-color .15s,border-color .15s,color .15s}.media-view__action-btn svg{width:12px;height:12px;stroke:currentColor}.media-view__action-btn:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-primary)}.media-view__action-btn--delete{color:var(--accent-red, #f14c4c);border-color:var(--border-color)}.media-view__action-btn--delete:hover:not(:disabled){background:#f14c4c1f;color:var(--accent-red, #f14c4c)}.media-view__action-btn:disabled{opacity:.5;cursor:not-allowed}.media-view__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;overflow-y:auto;padding:2px}.media-view__card{position:relative;display:flex;flex-direction:column;gap:4px;padding:6px 8px;border:1px solid var(--border-subtle);border-radius:6px;background:var(--bg-secondary)}.media-view__card-delete{position:absolute;top:4px;right:4px;display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border:1px solid var(--border-color);border-radius:5px;font-size:11px;font-weight:500;background:transparent;color:var(--accent-red, #f14c4c);cursor:pointer;opacity:.9;transition:opacity .15s,background-color .15s,border-color .15s,color .15s;z-index:1}.media-view__card-delete svg{width:12px;height:12px;stroke:currentColor}.media-view__card:hover .media-view__card-delete{opacity:1}.media-view__card-delete:hover:not(:disabled){background:#f14c4c1f;color:var(--accent-red, #f14c4c)}.media-view__card-delete:disabled{opacity:.5;cursor:not-allowed}.media-view__card:hover{background:var(--bg-hover)}.media-view__preview{aspect-ratio:1;border-radius:4px;overflow:hidden;background:var(--bg-tertiary, #1a1a1a);display:flex;align-items:center;justify-content:center}.media-view__preview img{width:100%;height:100%;object-fit:cover}.media-view__preview-placeholder{font-size:10px;color:var(--text-muted)}.media-view__name{font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-view__slug-row{display:flex;align-items:center;gap:4px}.media-view__slug{font-family:var(--font-mono, monospace);font-size:11px;color:var(--accent-primary);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-view__slug:hover{text-decoration:underline}.media-view__slug-input{flex:1;min-width:0;padding:3px 6px;font-family:var(--font-mono, monospace);font-size:11px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary)}.media-view__slug-edit{flex-shrink:0;padding:2px 6px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;font-size:.9rem}.media-view__slug-edit:hover{color:var(--accent-primary)}.media-view__meta{font-size:10px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab-bar{display:flex;align-items:stretch;height:35px;background-color:var(--bg-tertiary);border-bottom:1px solid var(--border-color);flex-shrink:0;position:relative}.tabs-container{display:flex;align-items:stretch;height:100%;overflow-x:auto;overflow-y:hidden;flex:1}.tabs-container::-webkit-scrollbar{height:4px}.tabs-container::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:2px}.tab{display:flex;align-items:center;gap:6px;padding:0 12px;height:100%;background-color:var(--bg-secondary);border-right:1px solid var(--border-subtle);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--transition-fast);position:relative}.tab:hover{background-color:var(--bg-hover)}.tab.active{background-color:var(--bg-primary)}.tab.active:after{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--border-focus),var(--accent-blue));border-radius:0 0 1px 1px}.tab-icon{display:flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0}.tab-icon svg{width:14px;height:14px;fill:var(--text-muted)}.tab.active .tab-icon svg{fill:var(--accent-blue)}.tab-label{font-size:12px;color:var(--text-secondary);white-space:nowrap}.tab.active .tab-label{color:var(--text-primary)}.tab-dirty{color:var(--accent-blue);font-size:8px;margin-left:2px}.tab-close-btn{display:flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;margin-left:2px;background:transparent;border:none;border-radius:var(--radius-sm, 3px);color:var(--text-muted);cursor:pointer;opacity:0;transition:opacity .15s ease,background-color .15s ease,color .15s ease;flex-shrink:0}.tab-close-btn svg{width:14px;height:14px}.tab:hover .tab-close-btn,.tab.active .tab-close-btn{opacity:1}.tab-close-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.tab[draggable=true]{cursor:grab}.tab[draggable=true]:active{cursor:grabbing}.tab.dragging{opacity:.5}.tab-drop-indicator{position:absolute;top:4px;bottom:4px;width:2px;background-color:var(--border-focus);pointer-events:none;z-index:10}.tab-drop-indicator.left{left:-1px}.tab-drop-indicator.right{right:-1px}@media(max-width:768px){.tab-bar{height:44px}.tabs-container{-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}.tab{padding:0 16px;min-width:80px;scroll-snap-align:start;-webkit-user-drag:none}.tab-icon{width:18px;height:18px}.tab-icon svg{width:16px;height:16px}.tab-label{font-size:13px}.tab:hover{background-color:var(--bg-secondary)}.tab:active{background-color:var(--bg-hover)}.tab.active:hover,.tab.active:active{background-color:var(--bg-primary)}}@media(max-width:480px){.tab{padding:0 12px;min-width:70px}.tab-label{font-size:12px}}.editor-group{display:flex;flex-direction:column;height:100%;background-color:var(--bg-primary);overflow:hidden;position:relative}.editor-group-header{display:flex;align-items:stretch;flex-shrink:0;position:relative;z-index:20;isolation:isolate}.editor-group-header .tab-bar{flex:1}.merge-group-button{display:flex;align-items:center;justify-content:center;width:32px;padding:0;background-color:var(--bg-tertiary);border:none;border-bottom:1px solid var(--border-color);border-left:1px solid var(--border-subtle);cursor:pointer;color:var(--text-muted);transition:all var(--transition-fast)}.merge-group-button:hover{background-color:var(--bg-hover);color:var(--accent-blue)}.merge-group-button svg{width:14px;height:14px;fill:currentColor}.editor-group-content{flex:1;overflow:hidden;position:relative}.split-zone{position:absolute;top:35px;bottom:0;width:48px;display:flex;align-items:center;justify-content:center;z-index:50;background-color:#007acc26;border:2px dashed var(--border-focus);transition:all .15s ease;animation:splitZoneFadeIn .15s ease}@keyframes splitZoneFadeIn{0%{opacity:0;width:0}to{opacity:1;width:48px}}.split-zone-left{left:0;border-left:none;border-top:none;border-bottom:none;border-radius:0 4px 4px 0}.split-zone-right{right:0;border-right:none;border-top:none;border-bottom:none;border-radius:4px 0 0 4px}.split-zone.active{background-color:#007acc59;width:60px}.split-zone-label{display:flex;align-items:center;justify-content:center;writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg)}.split-zone-label span{font-size:10px;font-weight:700;color:var(--border-focus);letter-spacing:2px;opacity:.8}.split-zone.active .split-zone-label span{opacity:1;color:var(--text-primary)}@media(max-width:768px){.editor-group{min-height:0}.editor-group-header{position:sticky;top:0;z-index:20}.merge-group-button{width:44px;display:none}.editor-group-content{flex:1;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch}.split-zone{display:none}}.code-editor{display:flex;flex-direction:column;height:100%;background-color:var(--bg-primary)}.editor-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;color:var(--text-muted);background-color:var(--bg-primary);padding:40px}.editor-placeholder .placeholder-icon{width:48px;height:48px;margin-bottom:16px;opacity:.3}.editor-placeholder .placeholder-icon svg{width:100%;height:100%;fill:currentColor}.editor-placeholder h3{font-size:14px;font-weight:500;margin-bottom:8px;color:var(--text-secondary)}.editor-placeholder p{font-size:12px;max-width:280px;line-height:1.5}.script-toolbar{display:flex;align-items:center;justify-content:space-between;height:32px;padding:0 8px;background-color:var(--bg-secondary);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.execution-buttons{display:flex;align-items:center;gap:2px}.button-separator{width:1px;height:16px;background-color:var(--border-color);margin:0 4px}.exec-button{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background-color:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.exec-button svg{width:12px;height:12px;fill:currentColor}.exec-button:hover:not(:disabled){background-color:var(--bg-hover);color:var(--text-primary)}.exec-button:active:not(:disabled){background-color:var(--bg-active)}.exec-button:disabled{opacity:.35;cursor:not-allowed}.exec-button.run:hover:not(:disabled){color:var(--accent-green)}.exec-button.stop:hover:not(:disabled){color:var(--accent-red)}.exec-button.resume:hover:not(:disabled){color:var(--accent-blue)}.exec-button.step:hover:not(:disabled){color:var(--accent-yellow)}.exec-button.reset:hover:not(:disabled){color:var(--accent-orange)}.exec-button.sethere:hover:not(:disabled){color:var(--accent-purple)}.script-toolbar [data-tooltip]{position:relative}.script-toolbar [data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);padding:4px 8px;background:var(--bg-tertiary);color:var(--text-primary);font-size:11px;font-weight:500;white-space:nowrap;border-radius:var(--radius-sm);border:1px solid var(--border-color);box-shadow:0 2px 8px #0003;opacity:0;pointer-events:none;transition:opacity .15s ease;z-index:1000}.script-toolbar [data-tooltip]:hover:after,.script-toolbar [data-tooltip]:focus-visible:after{opacity:1}.toolbar-right{display:flex;align-items:center;gap:8px}.saving-indicator{font-size:10px;color:var(--text-muted)}.save-button{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background-color:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.save-button svg{width:14px;height:14px;fill:currentColor}.save-button:hover:not(:disabled){background-color:var(--bg-hover);color:var(--text-primary)}.save-button:disabled{opacity:.4;cursor:not-allowed}.editor-container{flex:1;min-height:0;position:relative}.monaco-editor,.monaco-editor .margin,.monaco-editor-background{background-color:var(--bg-primary)!important}.monaco-editor .scroll-decoration{box-shadow:none!important}.monaco-editor .suggest-widget,.monaco-editor .monaco-hover,.monaco-editor .parameter-hints-widget{z-index:100}.code-editor{overflow:visible}.editor-container .monaco-editor{overflow:visible!important}.monaco-editor .execution-line-running,.monaco-editor .view-overlays .execution-line-running{background-color:color-mix(in srgb,var(--editor-execution-line-running, #4ec9b0) 25%,transparent)!important}.monaco-editor .execution-line-paused,.monaco-editor .view-overlays .execution-line-paused{background-color:color-mix(in srgb,var(--editor-execution-line-paused, #ddb34a) 28%,transparent)!important}.monaco-editor .execution-line-decoration-running,.monaco-editor .execution-line-decoration-paused{width:3px!important;margin-left:3px}.monaco-editor .execution-line-decoration-running{background-color:var(--editor-execution-glyph-running, #4ec9b0)!important}.monaco-editor .execution-line-decoration-paused{background-color:var(--editor-execution-glyph-paused, #ddb34a)!important}.monaco-editor .execution-glyph-running,.monaco-editor .execution-glyph-paused{width:10px!important;height:10px!important;border-radius:50%;margin-left:15px;margin-top:5px}.monaco-editor .execution-glyph-running{background-color:var(--editor-execution-glyph-running, #4ec9b0);box-shadow:0 0 6px var(--editor-execution-glyph-running, #4ec9b0)}.monaco-editor .execution-glyph-paused{background-color:var(--editor-execution-glyph-paused, #ddb34a);box-shadow:0 0 6px var(--editor-execution-glyph-paused, #ddb34a)}.execution-line-loading{background-color:#6496ff1a!important;animation:loadingPulse 1.5s ease-in-out infinite}@keyframes loadingPulse{0%,to{background-color:#6496ff1a}50%{background-color:#6496ff33}}.monaco-editor.readonly-mode .view-lines{opacity:.9}@media(max-width:768px){.code-editor{touch-action:pan-y}.editor-placeholder{padding:24px}.editor-placeholder .placeholder-icon{width:40px;height:40px;margin-bottom:12px}.editor-placeholder h3{font-size:15px}.editor-placeholder p{font-size:13px}.script-toolbar{height:44px;padding:0 12px;gap:4px}.execution-buttons{gap:4px}.button-separator{height:20px;margin:0 6px}.exec-button{width:36px;height:36px}.exec-button svg{width:16px;height:16px}.exec-button:hover:not(:disabled){background-color:transparent;color:var(--text-secondary)}.exec-button:active:not(:disabled){background-color:var(--bg-hover);color:var(--text-primary)}.exec-button.run:active:not(:disabled){color:var(--accent-green)}.exec-button.stop:active:not(:disabled){color:var(--accent-red)}.exec-button.resume:active:not(:disabled){color:var(--accent-blue)}.saving-indicator{font-size:11px}.save-button{width:36px;height:36px}.save-button svg{width:16px;height:16px}.editor-container{touch-action:pan-y pinch-zoom}}@media(max-width:480px){.script-toolbar{height:40px;padding:0 8px}.exec-button{width:32px;height:32px}.exec-button svg{width:14px;height:14px}.button-separator{margin:0 4px}.save-button{width:32px;height:32px}}.output-panel{display:flex;flex-direction:column;height:100%;background-color:var(--bg-primary)}.output-toolbar{display:flex;align-items:center;gap:4px;padding:4px 8px;background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);min-height:28px}.output-toolbar-button{display:flex;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-family:var(--font-ui);color:var(--text-secondary);background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.output-toolbar-button:hover:not(:disabled){background-color:var(--bg-hover);color:var(--text-primary)}.output-toolbar-button:disabled{opacity:.5;cursor:not-allowed}.output-toolbar-button svg{width:14px;height:14px;fill:currentColor}.output-content{flex:1;overflow:auto;padding:12px;font-family:var(--font-mono);font-size:12px;line-height:1.6;color:var(--text-primary)}.output-lines{white-space:pre-wrap;word-break:break-word}.output-line{display:flex;gap:8px;padding:2px 4px;border-radius:var(--radius-sm)}.output-line:hover{background-color:var(--bg-hover)}.output-timestamp{color:var(--text-muted);font-size:11px;flex-shrink:0;-webkit-user-select:none;user-select:none}.output-text{color:var(--text-primary);flex:1}.output-placeholder-message{display:flex;align-items:center;gap:8px;color:var(--text-muted);font-family:var(--font-ui)}.output-placeholder-message svg{width:16px;height:16px;fill:currentColor;opacity:.5}.output-panel-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;color:var(--text-muted);background-color:var(--bg-primary);padding:40px}.output-panel-placeholder .placeholder-icon{width:48px;height:48px;margin-bottom:16px;opacity:.3}.output-panel-placeholder .placeholder-icon svg{width:100%;height:100%;fill:currentColor}.output-panel-placeholder h3{font-size:14px;font-weight:500;margin-bottom:8px;color:var(--text-secondary)}.output-panel-placeholder p{font-size:12px;max-width:280px;line-height:1.5}.locals-panel{display:flex;flex-direction:column;height:100%;background-color:var(--bg-primary)}.locals-content{flex:1;overflow:auto;padding:12px}.locals-placeholder-message{display:flex;align-items:center;gap:8px;color:var(--text-muted);font-size:12px}.locals-placeholder-message svg{width:16px;height:16px;fill:currentColor;opacity:.5}.locals-tree{font-family:var(--font-ui);font-size:12px}.locals-item{display:flex;align-items:center;padding:4px 8px;border-radius:var(--radius-md);transition:background-color var(--transition-fast)}.locals-item:hover{background-color:var(--bg-hover)}.locals-item-name{color:var(--accent-blue);margin-right:8px}.locals-item-value{color:var(--accent-orange)}.locals-item-type{color:var(--text-muted);margin-left:auto;font-size:11px}.locals-panel-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;color:var(--text-muted);background-color:var(--bg-primary);padding:40px}.locals-panel-placeholder .placeholder-icon{width:48px;height:48px;margin-bottom:16px;opacity:.3}.locals-panel-placeholder .placeholder-icon svg{width:100%;height:100%;fill:currentColor}.locals-panel-placeholder h3{font-size:14px;font-weight:500;margin-bottom:8px;color:var(--text-secondary)}.locals-panel-placeholder p{font-size:12px;max-width:280px;line-height:1.5}.inspector-panel{display:flex;flex-direction:column;height:100%;background-color:var(--bg-primary)}.inspector-content{flex:1;overflow:auto;padding:12px}.inspector-placeholder-message{display:flex;align-items:center;gap:8px;color:var(--text-muted);font-size:12px}.inspector-placeholder-message svg{width:16px;height:16px;fill:currentColor;opacity:.5}.inspector-tree{font-family:var(--font-ui);font-size:12px}.inspector-group{margin-bottom:8px}.inspector-group-header{display:flex;align-items:center;gap:6px;width:100%;padding:6px 8px;border:none;background:var(--bg-secondary);color:var(--text-secondary);font-size:12px;font-weight:500;text-align:left;cursor:pointer;border-radius:var(--radius-md);transition:background-color var(--transition-fast)}.inspector-group-header:hover{background-color:var(--bg-hover)}.inspector-group-chevron{font-size:10px;opacity:.8}.inspector-element-wrapper{margin-left:12px;margin-top:2px}.inspector-element{display:flex;align-items:center;gap:8px;width:100%;padding:4px 8px;border:none;background:transparent;color:var(--text-primary);font-size:12px;text-align:left;cursor:pointer;border-radius:var(--radius-md);transition:background-color var(--transition-fast)}.inspector-element:hover{background-color:var(--bg-hover)}.inspector-element-chevron{font-size:10px;opacity:.7;width:12px}.inspector-element-name{color:var(--accent-blue);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.inspector-element-type{color:var(--text-muted);font-size:11px}.inspector-properties{margin-left:24px;padding-left:8px;border-left:1px solid var(--border-subtle);margin-top:4px;margin-bottom:8px}.inspector-property{display:grid;grid-template-columns:180px 70px 1fr;align-items:center;gap:12px;padding:2px 0;font-size:11px}.inspector-property-name{color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis}.inspector-property-type{color:var(--accent-orange)}.inspector-property-access{color:var(--text-muted);font-size:10px}.inspector-commands{margin-left:24px;padding-left:8px;border-left:1px solid var(--border-subtle);margin-top:4px;margin-bottom:8px}.inspector-command{display:flex;flex-direction:column;gap:2px;padding:4px 0;font-size:11px}.inspector-command-name{color:var(--accent-blue);font-weight:500}.inspector-command-syntax{color:var(--text-muted);font-family:var(--font-mono, monospace);font-size:10px}.inspector-variables-list{margin-left:12px;margin-top:2px}.inspector-variable{display:grid;grid-template-columns:120px 80px;align-items:center;gap:12px;padding:4px 8px;font-size:12px;border-radius:var(--radius-md);transition:background-color var(--transition-fast)}.inspector-variable:hover{background-color:var(--bg-hover)}.inspector-variable-name{color:var(--accent-blue)}.inspector-variable-type{color:var(--accent-orange);font-size:11px}.script-panel{display:flex;flex-direction:column;height:100%;background-color:var(--bg-primary);overflow:hidden}.script-panel-content{flex:1;overflow:hidden;position:relative}.script-panel.mobile{height:100%}.script-panel.mobile .script-panel-content{display:flex;flex-direction:column;height:100%}@media(max-width:768px){.script-panel{height:100%}.script-panel-content{display:flex;flex-direction:column}}.scrambled-pin-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2200;display:flex;align-items:center;justify-content:center;padding:1rem;background:#000000b8}.scrambled-pin-panel{width:min(460px,100%);border:1px solid var(--border-color);border-radius:var(--radius-xl);background:var(--bg-secondary);box-shadow:var(--shadow-xl);padding:1.25rem;display:flex;flex-direction:column;gap:1rem}.scrambled-pin-header h2{margin:0;color:var(--text-primary);font-size:1.125rem}.scrambled-pin-header p{margin:.35rem 0 0;color:var(--text-secondary);font-size:.875rem;line-height:1.4}.scrambled-pin-error{border:1px solid rgba(204,0,51,.28);border-radius:var(--radius-md);background:#cc00331f;color:#c03;padding:.625rem .75rem;font-size:.8125rem}.scrambled-pin-display{display:flex;justify-content:center;gap:.6rem;border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:.9rem;background:var(--bg-tertiary)}.scrambled-pin-dot{width:12px;height:12px;border-radius:999px;border:1px solid var(--border-color);background:transparent}.scrambled-pin-dot.filled{border-color:var(--accent-primary);background:var(--accent-primary)}.scrambled-pin-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.55rem}.scrambled-pin-digit{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-primary);font-size:1.05rem;font-weight:600;min-height:44px;cursor:pointer}.scrambled-pin-digit:hover:not(:disabled){background:var(--bg-hover)}.scrambled-pin-digit:disabled{opacity:.55;cursor:not-allowed}.scrambled-pin-util,.scrambled-pin-actions{display:flex;gap:.6rem}.scrambled-pin-util button,.scrambled-pin-actions button{flex:1;border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-primary);min-height:38px;cursor:pointer;font-size:.875rem;font-weight:500}.scrambled-pin-util button:hover:not(:disabled),.scrambled-pin-actions button:hover:not(:disabled){background:var(--bg-hover)}.scrambled-pin-actions button.primary{border-color:var(--accent-primary);background:var(--accent-primary);color:#fff}.scrambled-pin-actions button.primary:hover:not(:disabled){background:#17b}.scrambled-pin-util button:disabled,.scrambled-pin-actions button:disabled{opacity:.55;cursor:not-allowed}@media(max-width:640px){.scrambled-pin-panel{width:100%;max-width:100%;border-radius:var(--radius-lg);padding:1rem}.scrambled-pin-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.element-templates-settings-form{overflow:hidden;position:relative}.element-templates-reload-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.element-templates-reload-row .settings-button{display:inline-flex;align-items:center;gap:.5rem}.element-templates-toggle-failures{background:none;border:none;color:inherit;text-decoration:underline;cursor:pointer;font-size:inherit;padding:0;margin-left:.5rem;opacity:.85}.element-templates-toggle-failures:hover{opacity:1}.element-templates-failure-list{border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden;margin-top:.5rem;max-height:200px;overflow-y:auto}.element-templates-failure-item{display:flex;flex-direction:column;gap:.125rem;padding:.625rem .75rem;border-bottom:1px solid var(--border-color);font-size:.8125rem}.element-templates-failure-item:last-child{border-bottom:none}.element-templates-failure-folder{color:var(--text-primary);font-weight:500;font-family:var(--font-mono);font-size:.75rem}.element-templates-failure-error{color:#e74c3c;font-size:.75rem}.element-templates-loading-inline{display:flex;align-items:center;gap:.5rem;color:var(--text-secondary);font-size:.875rem;padding:.5rem 0}.element-templates-defaults-grid{display:flex;flex-direction:column;gap:.75rem;padding-right:.25rem}.element-templates-default-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.625rem .75rem;background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);min-width:0}.element-templates-default-label{font-size:.875rem;font-weight:500;color:var(--text-primary);white-space:nowrap;flex-shrink:0}.element-templates-default-select{min-width:280px;width:280px;max-width:100%;flex-shrink:0;padding-right:2.25rem;background-position:right .625rem center;text-overflow:ellipsis}@media(max-width:540px){.element-templates-default-row{flex-direction:column;align-items:stretch}.element-templates-default-select{width:100%;min-width:0;max-width:100%}}.device-types-settings-form{overflow:hidden;position:relative}.device-types-loading-inline{display:flex;align-items:center;gap:.5rem;color:var(--text-secondary);font-size:.875rem;padding:.5rem 0}.device-types-version-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.device-types-version-select{min-width:120px}.device-types-empty{color:var(--text-secondary);font-size:.875rem;padding:1rem 0}.device-types-list{border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden;max-height:280px;overflow-y:auto}.device-types-list-header{display:grid;grid-template-columns:1fr auto;gap:1rem;padding:.5rem .75rem;background:var(--bg-tertiary);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.device-types-list-row{display:grid;grid-template-columns:1fr auto;gap:1rem;padding:.5rem .75rem;border-bottom:1px solid var(--border-subtle);font-size:.875rem}.device-types-list-row:last-child{border-bottom:none}.device-types-list-name{font-weight:500;color:var(--text-primary)}.device-types-list-source{color:var(--text-secondary);font-size:.8125rem}.webhooks-settings-form{overflow:hidden;position:relative}.webhooks-settings-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.webhooks-settings-header h2{margin:0}.webhooks-settings-table{border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden;max-height:340px;overflow-y:auto}.webhooks-settings-table-header{display:grid;grid-template-columns:1.2fr 2fr .7fr .6fr 5rem;gap:.75rem;padding:.5rem .75rem;background:var(--bg-tertiary);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.webhooks-settings-table-row{display:grid;grid-template-columns:1.2fr 2fr .7fr .6fr 5rem;gap:.75rem;padding:.5rem .75rem;border-bottom:1px solid var(--border-subtle);font-size:.875rem;align-items:center}.webhooks-settings-table-row:last-child{border-bottom:none}.webhooks-settings-table-row:hover{background:var(--bg-hover)}.webhooks-settings-name{font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.webhooks-settings-url{color:var(--text-secondary);font-size:.8125rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.webhooks-settings-method{color:var(--text-secondary);font-size:.8125rem}.webhooks-settings-actions{display:flex;gap:.375rem;justify-content:flex-end}.webhooks-settings-actions button{padding:.25rem .5rem;font-size:.75rem}.webhooks-settings-toggle{position:relative;width:34px;height:18px;cursor:pointer}.webhooks-settings-toggle input{opacity:0;width:0;height:0;position:absolute}.webhooks-settings-toggle-track{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:9px;transition:background .2s}.webhooks-settings-toggle input:checked+.webhooks-settings-toggle-track{background:var(--accent);border-color:var(--accent)}.webhooks-settings-toggle-thumb{position:absolute;top:2px;left:2px;width:12px;height:12px;background:var(--text-secondary);border-radius:50%;transition:transform .2s,background .2s;pointer-events:none}.webhooks-settings-toggle input:checked~.webhooks-settings-toggle-thumb{transform:translate(16px);background:#fff}.webhooks-settings-form-area{border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1rem;margin-top:1rem;background:var(--bg-secondary)}.webhooks-settings-form-area h3{margin:0 0 .75rem;font-size:.9375rem}.webhooks-settings-field{margin-bottom:.75rem}.webhooks-settings-field label{display:block;font-size:.8125rem;font-weight:500;color:var(--text-secondary);margin-bottom:.25rem}.webhooks-settings-field input[type=text],.webhooks-settings-field select,.webhooks-settings-field textarea{width:100%;box-sizing:border-box;padding:.5rem .625rem;font-size:.875rem;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);font-family:inherit}.webhooks-settings-field textarea{resize:vertical;font-family:var(--font-mono, monospace);font-size:.8125rem}.webhooks-settings-field input:focus,.webhooks-settings-field select:focus,.webhooks-settings-field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 20%,transparent)}.webhooks-settings-headers{margin-bottom:.75rem}.webhooks-settings-headers label{display:block;font-size:.8125rem;font-weight:500;color:var(--text-secondary);margin-bottom:.25rem}.webhooks-settings-header-row{display:flex;gap:.5rem;margin-bottom:.375rem;align-items:center}.webhooks-settings-header-row input{flex:1;padding:.375rem .5rem;font-size:.8125rem;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary)}.webhooks-settings-header-row input:focus{outline:none;border-color:var(--accent)}.webhooks-settings-header-row .webhooks-settings-remove-btn{padding:.25rem .5rem;font-size:.75rem;background:none;border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer}.webhooks-settings-header-row .webhooks-settings-remove-btn:hover{border-color:var(--danger, #e74c3c);color:var(--danger, #e74c3c)}.webhooks-settings-add-header-btn{padding:.25rem .625rem;font-size:.8125rem;background:none;border:1px dashed var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer}.webhooks-settings-add-header-btn:hover{border-color:var(--accent);color:var(--accent)}.webhooks-settings-form-actions{display:flex;gap:.5rem;margin-top:1rem}.webhooks-settings-empty{color:var(--text-secondary);font-size:.875rem;padding:1rem 0}.webhooks-settings-loading-inline{display:flex;align-items:center;gap:.5rem;color:var(--text-secondary);font-size:.875rem;padding:.5rem 0}.settings-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;isolation:isolate;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.settings-modal{background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:90%;max-width:520px;max-height:80vh;display:flex;flex-direction:column;animation:slideIn .15s ease;position:relative;z-index:1}.settings-modal--wide{max-width:700px}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.settings-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:var(--radius-xl) var(--radius-xl) 0 0}.settings-modal-title{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-size:1rem;font-weight:500}.settings-modal-icon{width:18px;height:18px;color:var(--accent-blue)}.settings-modal-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.settings-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.settings-modal-close svg{width:16px;height:16px}.settings-modal-content{flex:1;overflow-y:auto;overflow-x:hidden;isolation:isolate;padding-right:2px}.settings-modal-content::-webkit-scrollbar{width:8px}.settings-modal-content::-webkit-scrollbar-track{background:transparent}.settings-modal-content::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}.settings-modal-content::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.settings-loading,.settings-error{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:2rem;color:var(--text-secondary)}.settings-loading .loading-spinner{width:32px;height:32px;border:3px solid var(--bg-tertiary);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}@keyframes spin{to{transform:rotate(360deg)}}.settings-error .error-icon{width:48px;height:48px;margin-bottom:1rem;color:#e74c3c}.settings-error .error-icon svg{width:100%;height:100%;fill:currentColor}.settings-error h3{margin:0 0 .5rem;color:var(--text-primary)}.settings-form{padding:1.25rem}.settings-header{margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.settings-header h2{margin:0 0 .5rem;color:var(--text-primary);font-size:1.25rem;font-weight:500}.settings-description{margin:0;color:var(--text-secondary);font-size:.875rem;line-height:1.5}.settings-section{margin-bottom:2rem}.settings-section h3{margin:0 0 1rem;color:var(--text-primary);font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.section-header-with-status{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.section-header-with-status h3{margin:0}.health-indicator{display:flex;align-items:center;gap:.5rem;font-size:.75rem;padding:.25rem .625rem;border-radius:var(--radius-pill);background:var(--bg-tertiary)}.health-indicator .health-dot{width:8px;height:8px;border-radius:50%;transition:background .3s ease}.health-indicator.healthy .health-dot{background:#2ecc71;box-shadow:0 0 6px #2ecc7180}.health-indicator.unhealthy .health-dot{background:#95a5a6}.health-indicator .health-label{color:var(--text-secondary);font-weight:500}.health-indicator.healthy .health-label{color:#2ecc71}.health-indicator .health-checking{color:var(--text-muted);font-size:.625rem}.health-indicator.checking .health-dot{animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.4}50%{opacity:1}}.settings-field{margin-bottom:1.25rem}.settings-field label{display:block;margin-bottom:.5rem;color:var(--text-primary);font-size:.875rem;font-weight:500}.settings-input,.settings-select{width:100%;max-width:400px;padding:.625rem .75rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:.875rem;font-family:inherit;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.settings-input:focus,.settings-select:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px #007acc26}.settings-input:disabled,.settings-select:disabled{opacity:.6;cursor:not-allowed}.settings-input.readonly{background:var(--bg-secondary);color:var(--text-secondary)}.settings-select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23858585' d='M4 6l4 4 4-4H4z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center;background-size:16px;padding-right:2rem}.settings-hint{display:block;margin-top:.375rem;color:var(--text-secondary);font-size:.75rem;line-height:1.4}.settings-error{display:block;margin-top:.375rem;color:#e74c3c;font-size:.75rem}.input-with-unit{display:flex;align-items:center;max-width:200px}.input-with-unit .settings-input{border-radius:var(--radius-md) 0 0 var(--radius-md);flex:1}.input-unit{padding:.625rem .75rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-left:none;border-radius:0 var(--radius-md) var(--radius-md) 0;color:var(--text-secondary);font-size:.875rem}.input-with-button{display:flex;gap:.5rem;max-width:400px}.input-with-button .settings-input{flex:1}.settings-row{display:flex;gap:1.5rem;flex-wrap:wrap}.settings-row .settings-field{flex:1;min-width:150px}.toggle-field{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.toggle-field.inline{align-items:center;flex-direction:row}.toggle-field.inline label{margin-bottom:0}.toggle-content{flex:1}.toggle-content label{margin-bottom:.25rem}.toggle-switch{position:relative;width:44px;height:24px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-pill);cursor:pointer;transition:background var(--transition-normal),border-color var(--transition-normal);flex-shrink:0}.toggle-switch:focus{outline:none;border-color:var(--accent-primary)}.toggle-switch:disabled{opacity:.6;cursor:not-allowed}.toggle-switch.on{background:var(--accent-primary);border-color:var(--accent-primary)}.toggle-slider{position:absolute;top:2px;left:2px;width:18px;height:18px;background:var(--text-secondary);border-radius:50%;transition:transform var(--transition-normal),background var(--transition-normal)}.toggle-switch.on .toggle-slider{transform:translate(20px);background:#fff}.status-badge{display:inline-flex;align-items:center;padding:.375rem .75rem;border-radius:var(--radius-pill);font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.status-locked,.status-inactive{background:#e74c3c26;color:#e74c3c}.status-unlocked,.status-active{background:#2ecc7126;color:#2ecc71}.settings-actions{display:flex;gap:.75rem;margin-top:1.5rem}.settings-button{padding:.625rem 1.25rem;border:none;border-radius:var(--radius-lg);font-size:.875rem;font-weight:500;cursor:pointer;transition:background var(--transition-fast),opacity var(--transition-fast),box-shadow var(--transition-fast)}.settings-button:disabled{opacity:.6;cursor:not-allowed}.settings-button.primary{background:var(--accent-primary);color:#fff}.settings-button.primary:hover:not(:disabled){background:#17b}.settings-button.secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.settings-button.secondary:hover:not(:disabled){background:var(--bg-hover)}.settings-message{padding:.75rem 1rem;border-radius:var(--radius-lg);font-size:.875rem;margin-bottom:1rem}.settings-message.error{background:#e74c3c26;color:#e74c3c;border:1px solid rgba(231,76,60,.3)}.settings-message.success{background:#2ecc7126;color:#2ecc71;border:1px solid rgba(46,204,113,.3)}.settings-info-box{display:flex;gap:.75rem;padding:1rem;background:var(--bg-tertiary);border-radius:var(--radius-lg);border-left:3px solid var(--accent-primary);margin-top:1.5rem}.settings-info-box .info-icon{flex-shrink:0;width:20px;height:20px;color:var(--accent-primary)}.settings-info-box .info-icon svg{width:100%;height:100%;fill:currentColor}.settings-info-box .info-content{font-size:.875rem;color:var(--text-secondary);line-height:1.5}.settings-info-box .info-content strong{color:var(--text-primary)}.settings-info-box .info-content a{color:var(--accent-blue);text-decoration:none}.settings-info-box .info-content a:hover{text-decoration:underline}.settings-saving{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:var(--bg-tertiary);border-radius:var(--radius-lg);color:var(--text-secondary);font-size:.875rem;margin-top:1.5rem}.saving-indicator{width:16px;height:16px;border:2px solid var(--bg-hover);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}.url-display{display:flex;align-items:center;gap:.5rem;max-width:400px}.url-display code{flex:1;padding:.625rem .75rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--accent-blue);font-family:var(--font-mono);font-size:.875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.copy-button{padding:.5rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;color:var(--text-secondary);transition:color var(--transition-fast),border-color var(--transition-fast)}.copy-button:hover{color:var(--text-primary);border-color:var(--text-secondary)}.copy-button svg{width:16px;height:16px;fill:currentColor;display:block}.recipient-list{border:1px solid var(--border-color);border-radius:var(--radius-lg);max-width:400px;max-height:200px;overflow-y:auto}.empty-recipients{padding:1rem;color:var(--text-secondary);font-size:.875rem;text-align:center}.recipient-item{display:flex;align-items:center;justify-content:space-between;padding:.625rem .75rem;border-bottom:1px solid var(--border-color)}.recipient-item:last-child{border-bottom:none}.recipient-email{color:var(--text-primary);font-size:.875rem;overflow:hidden;text-overflow:ellipsis}.recipient-remove{padding:.25rem;background:transparent;border:none;cursor:pointer;color:var(--text-secondary);border-radius:var(--radius-md);transition:color var(--transition-fast),background var(--transition-fast)}.recipient-remove:hover:not(:disabled){color:#e74c3c;background:#e74c3c1a}.recipient-remove:disabled{opacity:.5;cursor:not-allowed}.recipient-remove svg{width:16px;height:16px;fill:currentColor;display:block}.license-status-card{display:flex;gap:1rem;padding:1.25rem;background:var(--bg-tertiary);border-radius:var(--radius-lg);border:1px solid var(--border-color)}.license-status-icon{flex-shrink:0;width:48px;height:48px}.license-status-icon.licensed{color:#43a047}.license-status-icon.unlicensed{color:#c03}.license-status-icon svg{width:100%;height:100%;fill:currentColor}.license-status-info{flex:1}.license-status-text{margin-bottom:.5rem;font-size:.875rem}.license-status-text .status-label{color:var(--text-secondary);margin-right:.5rem}.license-status-text .status-value{font-weight:600;font-size:.9rem}.license-status-text .status-licensed{color:#43a047}.license-status-text .status-unlicensed{color:#c03}.license-status-text .status-loading{color:var(--text-secondary);font-style:italic}.license-status-detail{margin:0;color:var(--text-secondary);font-size:.75rem;line-height:1.4}.license-expiration{color:var(--text-secondary)}.license-status-hint{margin:0;color:var(--text-secondary);font-size:.75rem;line-height:1.4}.license-message{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-radius:var(--radius-lg);font-size:.8125rem;line-height:1.4;margin-bottom:.5rem;animation:licenseMessageIn .2s ease-out}@keyframes licenseMessageIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.license-message-success{background:#43a0471f;border:1px solid rgba(67,160,71,.3);color:#43a047}.license-message-error{background:#cc00331a;border:1px solid rgba(204,0,51,.25);color:#c03}.license-message-text{flex:1}.license-message-dismiss{background:none;border:none;color:inherit;opacity:.6;cursor:pointer;font-size:1.125rem;padding:0 0 0 .75rem;line-height:1}.license-message-dismiss:hover{opacity:1}.license-confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:licenseOverlayIn .15s ease-out}@keyframes licenseOverlayIn{0%{opacity:0}to{opacity:1}}.license-confirm-dialog{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.5rem;max-width:440px;width:90%;box-shadow:0 8px 32px #0000004d}.license-confirm-dialog h4{margin:0 0 .75rem;color:var(--text-primary);font-size:1rem;font-weight:600}.license-confirm-dialog p{margin:0 0 .75rem;color:var(--text-secondary);font-size:.8125rem;line-height:1.5}.license-confirm-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1rem}.settings-button.danger{background:#cc00331f;color:#c03;border:1px solid rgba(204,0,51,.3)}.settings-button.danger:hover:not(:disabled){background:#c033}.eval-wizard{padding:.5rem 0}.eval-steps{display:flex;align-items:center;justify-content:center;gap:0;margin-bottom:1.5rem}.eval-step{display:flex;flex-direction:column;align-items:center;gap:.375rem;min-width:64px}.eval-step-number{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;border:2px solid var(--border-color);color:var(--text-secondary);font-size:.8125rem;font-weight:600;transition:all .2s ease}.eval-step.active .eval-step-number{border-color:var(--accent-primary);color:var(--accent-primary);background:rgba(var(--accent-primary-rgb, 0, 122, 204),.08)}.eval-step.completed .eval-step-number{border-color:#43a047;color:#fff;background:#43a047}.eval-step-label{font-size:.6875rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;font-weight:500}.eval-step.active .eval-step-label{color:var(--text-primary)}.eval-step-connector{flex:1;height:2px;background:var(--border-color);margin:0 .25rem 1.25rem;min-width:32px;max-width:64px}.eval-step-content{animation:evalStepIn .2s ease-out}@keyframes evalStepIn{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}.eval-step-actions{display:flex;gap:.5rem;margin-top:1rem}.eval-step-done{display:flex;flex-direction:column;align-items:center;text-align:center;padding:1rem 0}.eval-success-icon{width:56px;height:56px;color:#43a047;margin-bottom:.75rem}.eval-success-icon svg{width:100%;height:100%}.eval-success-text{color:var(--text-primary);font-size:.875rem;margin:0 0 .5rem}.license-types-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem}.license-type-card{position:relative;padding:1rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-lg);transition:border-color .15s ease}.license-type-card.featured{border-color:var(--accent-primary)}.license-type-card.active{border-color:#43a047;background:#43a0470f}.license-type-active-badge{position:absolute;top:.5rem;right:.5rem;font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#43a047;background:#43a0471f;padding:.125rem .5rem;border-radius:9999px}.license-type-card h4{margin:0 0 .5rem;color:var(--text-primary);font-size:.875rem;font-weight:600}.license-type-card p{margin:0;color:var(--text-secondary);font-size:.75rem;line-height:1.4}@media(max-width:600px){.settings-form{padding:1rem}.settings-row{flex-direction:column;gap:0}.toggle-field{flex-direction:column;align-items:stretch}.toggle-switch{align-self:flex-start}.settings-input,.settings-select,.input-with-unit,.input-with-button,.url-display,.recipient-list{max-width:100%}}@media(max-width:768px){.settings-modal-overlay{align-items:stretch;justify-content:stretch}.settings-modal{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0;border:none;animation:mobileSlideUp .25s ease}@keyframes mobileSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.settings-modal-header{border-radius:0;padding:12px 16px;min-height:var(--mobile-header-height)}.settings-modal-title{font-size:16px}.settings-modal-close{width:40px;height:40px}.settings-modal-close svg{width:20px;height:20px}.settings-modal-content{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.settings-input,.settings-select{min-height:var(--touch-target-min);font-size:16px}.settings-button{min-height:var(--touch-target-min);padding:12px 20px}.toggle-switch{width:52px;height:28px}.toggle-slider{width:22px;height:22px}.toggle-switch.on .toggle-slider{transform:translate(24px)}}.logging-domain-grid{display:flex;flex-direction:column;gap:.75rem}.logging-domain-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem;background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.logging-domain-info{flex:1;min-width:0}.logging-domain-header{display:flex;align-items:center;gap:.625rem;margin-bottom:.25rem}.logging-domain-label{font-size:.875rem;font-weight:500;color:var(--text-primary)}.logging-domain-row .settings-hint{display:block;margin-left:calc(44px + .625rem)}.logging-level-select{width:140px;max-width:140px;flex-shrink:0}@media(max-width:540px){.logging-domain-row{flex-direction:column;align-items:stretch}.logging-level-select{width:100%;max-width:100%}}.device-form{padding:1.25rem}.device-form-header{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.device-form-header h2{margin:0 0 .5rem;color:var(--text-primary);font-size:1.25rem;font-weight:500}.device-form-description{margin:0;color:var(--text-secondary);font-size:.875rem;line-height:1.5}.device-form-section{margin-bottom:1.5rem}.device-form-section h3{margin:0 0 1rem;color:var(--text-primary);font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.device-field{margin-bottom:1.25rem}.device-field label{display:block;margin-bottom:.5rem;color:var(--text-primary);font-size:.875rem;font-weight:500}.device-input,.device-select{width:100%;max-width:400px;padding:.625rem .75rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:.875rem;font-family:inherit;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.device-input:focus,.device-select:focus{outline:none;border-color:var(--accent-primary)}.device-input:disabled,.device-select:disabled{opacity:.6;cursor:not-allowed}.device-input.readonly{background:var(--bg-secondary);color:var(--text-secondary)}.device-select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23858585' d='M4 6l4 4 4-4H4z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center;background-size:16px;padding-right:2rem}.device-hint{display:block;margin-top:.375rem;color:var(--text-secondary);font-size:.75rem;line-height:1.4}.device-field-row{display:flex;gap:1.5rem;flex-wrap:wrap}.device-field-row .device-field{flex:1;min-width:150px}.device-toggle-field{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.device-toggle-content{flex:1}.device-toggle-content label{margin-bottom:.25rem}.device-toggle-switch{position:relative;width:44px;height:24px;min-width:44px;min-height:24px;flex-shrink:0;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:12px;cursor:pointer;transition:background .2s ease,border-color .2s ease}.device-toggle-switch:focus{outline:none;border-color:var(--accent-primary)}.device-toggle-switch:disabled{opacity:.6;cursor:not-allowed}.device-toggle-switch.on{background:var(--accent-primary);border-color:var(--accent-primary)}.device-toggle-slider{position:absolute;top:2px;left:2px;width:18px;height:18px;min-width:18px;min-height:18px;aspect-ratio:1;background:var(--text-secondary);border-radius:50%;transition:transform .2s ease,background .2s ease}.device-toggle-switch.on .device-toggle-slider{transform:translate(20px);background:#fff}.connection-fields{margin-top:1rem;padding:1rem;background:var(--bg-tertiary);border-radius:6px;border:1px solid var(--border-color)}.connection-fields-title{margin:0 0 1rem;color:var(--text-primary);font-size:.8125rem;font-weight:600}.device-status{display:flex;gap:1rem;margin-top:1rem}.status-indicator{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--bg-tertiary);border-radius:4px;font-size:.75rem}.status-dot{width:8px;height:8px;border-radius:50%}.status-indicator.connected .status-dot{background:#2ecc71;box-shadow:0 0 6px #2ecc7180}.status-indicator.disconnected .status-dot{background:#95a5a6}.status-indicator.active .status-dot{background:#3498db;box-shadow:0 0 6px #3498db80}.status-indicator.inactive .status-dot{background:#95a5a6}.status-label{color:var(--text-secondary)}.device-saving{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:var(--bg-tertiary);border-radius:4px;color:var(--text-secondary);font-size:.875rem;margin-top:1.5rem}.device-saving-indicator{width:16px;height:16px;border:2px solid var(--bg-hover);border-top-color:var(--accent-primary);border-radius:50%;animation:deviceFormSpin 1s linear infinite}@keyframes deviceFormSpin{to{transform:rotate(360deg)}}@media(max-width:600px){.device-form{padding:1rem}.device-field-row{flex-direction:column;gap:0}.device-toggle-field{flex-direction:column;align-items:stretch}.device-toggle-switch{align-self:flex-start}.device-input,.device-select{max-width:100%}}@media(max-width:768px){.device-form{padding:16px}.device-input,.device-select{min-height:var(--touch-target-min);padding:12px;font-size:16px}.device-field label{font-size:14px;margin-bottom:8px}.device-toggle-switch{width:52px;height:28px;min-width:52px;min-height:28px}.device-toggle-slider{width:22px;height:22px;min-width:22px;min-height:22px}.device-toggle-switch.on .device-toggle-slider{transform:translate(24px)}.connection-fields{padding:16px}.device-status{flex-wrap:wrap}.status-indicator{padding:8px 12px;font-size:13px}}.device-mock-banner{display:flex;align-items:center;gap:8px;padding:10px 14px;margin-bottom:12px;border-radius:6px;background:#c586c01a;border:1px solid rgba(197,134,192,.3);color:#c586c0;font-size:13px;line-height:1.4}.device-mock-banner-icon{flex-shrink:0;width:20px;height:20px}.device-mock-error{padding:10px 14px;margin-bottom:12px;border-radius:6px;background:#cc00331a;border:1px solid rgba(204,0,51,.25);color:#c03;font-size:13px;line-height:1.4}.device-refresh-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:.875rem;font-family:inherit;cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast)}.device-refresh-btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--accent-primary)}.device-refresh-btn:disabled{opacity:.6;cursor:not-allowed}.device-refresh-icon{width:16px;height:16px;flex-shrink:0}.device-refresh-spinner{width:16px;height:16px;border:2px solid var(--bg-hover);border-top-color:var(--accent-primary);border-radius:50%;animation:deviceFormSpin 1s linear infinite}.device-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;animation:deviceFadeIn .15s ease}@keyframes deviceFadeIn{0%{opacity:0}to{opacity:1}}.device-modal{background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:90%;max-width:600px;max-height:85vh;display:flex;flex-direction:column;animation:deviceSlideIn .15s ease}@keyframes deviceSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.device-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:var(--radius-xl) var(--radius-xl) 0 0}.device-modal-title{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-size:1rem;font-weight:500}.device-modal-icon{width:18px;height:18px;color:#569cd6}.device-modal-actions{display:flex;align-items:center;gap:.5rem}.device-modal-diag{display:flex;align-items:center;gap:.35rem;padding:.35rem .6rem;font-size:.8rem;border:1px solid var(--color-border, #3c3c3c);border-radius:4px;background:transparent;color:var(--color-text-secondary, #aaa);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.device-modal-diag:hover{background:#007acc26;border-color:#007acc;color:#007acc}.device-modal-diag svg{width:14px;height:14px}.device-modal-delete{display:flex;align-items:center;gap:.35rem;padding:.35rem .6rem;font-size:.8rem;background:transparent;border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.device-modal-delete:hover:not(:disabled){background:#e74c3c26;border-color:#e74c3c;color:#e74c3c}.device-modal-delete:disabled{opacity:.6;cursor:not-allowed}.device-modal-delete svg{width:14px;height:14px}.device-modal-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.device-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.device-modal-close svg{width:16px;height:16px}.device-modal-content{flex:1;overflow-y:auto;overflow-x:hidden}.device-loading,.device-error{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:200px;padding:2rem;color:var(--text-secondary)}.device-loading .loading-spinner{width:32px;height:32px;border:3px solid var(--bg-tertiary);border-top-color:var(--accent-primary);border-radius:50%;animation:deviceSpin 1s linear infinite;margin-bottom:1rem}@keyframes deviceSpin{to{transform:rotate(360deg)}}.device-error .error-icon{width:48px;height:48px;margin-bottom:1rem;color:#e74c3c}.device-error .error-icon svg{width:100%;height:100%;fill:currentColor}.device-error h3{margin:0 0 .5rem;color:var(--text-primary)}@media(max-width:768px){.device-modal-overlay{align-items:stretch;justify-content:stretch}.device-modal{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0;border:none;animation:deviceMobileSlideUp .25s ease}@keyframes deviceMobileSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.device-modal-header{border-radius:0;padding:12px 16px;min-height:var(--mobile-header-height)}.device-modal-title{font-size:16px}.device-modal-close{width:40px;height:40px}.device-modal-close svg{width:20px;height:20px}.device-modal-content{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}}.mobile-nav-bar{display:none;position:fixed;bottom:0;left:0;right:0;height:var(--mobile-nav-height);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-top:1px solid var(--glass-border);z-index:100;padding-bottom:env(safe-area-inset-bottom,0)}@media(max-width:768px){.mobile-nav-bar{display:flex;align-items:stretch;justify-content:space-around}}.mobile-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:4px;padding:8px 4px;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast);min-height:var(--touch-target-min);position:relative}.mobile-nav-item:active{background:var(--bg-hover)}.mobile-nav-item.active{color:var(--accent-blue)}.mobile-nav-item.active:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:32px;height:3px;background:linear-gradient(90deg,var(--border-focus),var(--accent-blue));border-radius:0 0 var(--radius-sm) var(--radius-sm)}.mobile-nav-icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center}.mobile-nav-icon svg{width:22px;height:22px;stroke:currentColor}.mobile-nav-label{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}@media(max-width:768px)and (max-height:500px){.mobile-nav-bar{height:44px;padding-bottom:0}.mobile-nav-item{flex-direction:row;gap:8px}.mobile-nav-label{font-size:11px}}.sidebar-drawer-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:#0000;z-index:200;pointer-events:none;transition:background .3s ease}.sidebar-drawer-overlay.open{background:#00000080;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);pointer-events:auto}@media(max-width:768px){.sidebar-drawer-overlay{display:block}}.sidebar-drawer{position:absolute;top:0;left:0;width:85%;max-width:320px;height:100%;background:var(--bg-secondary);box-shadow:var(--shadow-xl);transform:translate(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;overflow:hidden}.sidebar-drawer.open{transform:translate(0)}.sidebar-drawer-header{display:flex;align-items:center;justify-content:space-between;height:var(--mobile-header-height);padding:0 16px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color);flex-shrink:0}.sidebar-drawer-title{font-size:14px;font-weight:600;color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px}.sidebar-drawer-close{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.sidebar-drawer-close:active{background:var(--bg-hover);color:var(--text-primary)}.sidebar-drawer-close svg{width:18px;height:18px}.sidebar-drawer-content{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.sidebar-drawer:after{content:"";position:absolute;top:50%;right:8px;transform:translateY(-50%);width:4px;height:48px;background:var(--text-muted);border-radius:2px;opacity:.3}@keyframes slideIn{0%{transform:translate(-100%)}to{transform:translate(0)}}@supports (padding-left: env(safe-area-inset-left)){.sidebar-drawer{padding-left:env(safe-area-inset-left)}}.theme-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;animation:themeFadeIn .15s ease}@keyframes themeFadeIn{0%{opacity:0}to{opacity:1}}.theme-modal{background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:90%;max-width:420px;max-height:90vh;display:flex;flex-direction:column;animation:themeSlideIn .15s ease}@keyframes themeSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.theme-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:var(--radius-xl) var(--radius-xl) 0 0;flex-shrink:0}.theme-modal-title{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-size:1rem;font-weight:500}.theme-modal-icon{width:18px;height:18px;color:var(--accent-blue)}.theme-modal-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.theme-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.theme-modal-close svg{width:16px;height:16px}.theme-modal-body{flex:1;overflow-y:auto;padding:1.25rem;min-height:0}.theme-modal-body .form-group{margin-bottom:1rem}.theme-modal-body .form-group label{display:block;margin-bottom:.5rem;color:var(--text-primary);font-size:13px;font-weight:500}.theme-modal-body .form-group input[type=text]{width:100%;padding:.5rem .75rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:14px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.theme-modal-body .form-group input[type=text]:focus{outline:none;border-color:var(--accent-primary)}.theme-modal-body .form-group select{width:100%;padding:.5rem .75rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:14px;cursor:pointer}.theme-modal-body .form-group select:focus{outline:none;border-color:var(--accent-primary)}.theme-modal-body .form-help{display:block;margin-top:.25rem;font-size:11px;color:var(--text-muted)}.theme-info-message{padding:.75rem 1rem;background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-secondary);font-size:12px;margin-top:.75rem;line-height:1.5}.theme-modal-body .loading{padding:1.5rem;text-align:center;color:var(--text-secondary)}.theme-modal-footer{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1.25rem;border-top:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:0 0 8px 8px;flex-shrink:0}.theme-footer-left,.theme-footer-right{display:flex;align-items:center;gap:.5rem}.theme-delete-confirm{display:flex;align-items:center;gap:.5rem;font-size:13px;color:var(--text-secondary)}.theme-btn{padding:.5rem 1rem;font-size:13px;border-radius:var(--radius-lg);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.theme-btn:disabled{opacity:.6;cursor:not-allowed}.theme-btn-primary{background:var(--accent-primary);border:none;color:#fff}.theme-btn-primary:hover:not(:disabled){background:var(--accent-hover)}.theme-btn-secondary{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary)}.theme-btn-secondary:hover:not(:disabled){background:var(--bg-hover)}.theme-btn-danger{background:#f443361a;border:1px solid var(--accent-red);color:var(--accent-red)}.theme-btn-danger:hover:not(:disabled){background:#f4433633}@media(max-width:768px){.theme-modal{width:100%;max-width:100vw;max-height:100vh;border-radius:0}.theme-modal-header,.theme-modal-footer{border-radius:0}.theme-delete-confirm{flex-wrap:wrap}}.color-picker{display:flex;flex-direction:column;gap:.375rem}.color-picker.disabled{opacity:.5;pointer-events:none}.color-picker-header{display:flex;flex-direction:column;gap:2px}.color-picker-label{font-size:11px;font-weight:500;color:var(--text-primary)}.color-picker-description{font-size:10px;color:var(--text-muted)}.color-picker-controls{display:flex;align-items:center;gap:.5rem}.color-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}@media(max-width:768px){.color-picker-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem}}.color-set-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;animation:colorSetFadeIn .15s ease}@keyframes colorSetFadeIn{0%{opacity:0}to{opacity:1}}.color-set-modal{background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:90%;max-width:720px;max-height:90vh;display:flex;flex-direction:column;animation:colorSetSlideIn .15s ease}@keyframes colorSetSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.color-set-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:var(--radius-xl) var(--radius-xl) 0 0;flex-shrink:0}.color-set-modal-title{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-size:1rem;font-weight:500}.color-set-modal-icon{width:18px;height:18px;color:var(--accent-purple)}.color-set-modal-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;transition:all .15s}.color-set-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.color-set-modal-close svg{width:16px;height:16px}.color-set-modal-body{flex:1;overflow-y:auto;padding:1.25rem;min-height:0}.color-set-modal-body .form-group{margin-bottom:1rem}.color-set-modal-body .form-group label{display:block;margin-bottom:.5rem;color:var(--text-primary);font-size:13px;font-weight:500}.color-set-modal-body .form-group input[type=text]{width:100%;padding:.5rem .75rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:14px}.color-set-modal-body .form-group input[type=text]:focus{outline:none;border-color:var(--accent-primary)}.color-set-modal-body .info-message{padding:.75rem 1rem;background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-secondary);font-size:12px;margin-bottom:1rem;line-height:1.5}.color-set-modal-body .loading{padding:2rem;text-align:center;color:var(--text-secondary)}.color-categories{margin-top:.5rem}.category-tabs{display:flex;flex-wrap:wrap;gap:.25rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-subtle)}.category-tab{padding:.375rem .75rem;background:transparent;border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all .15s}.category-tab:hover{background:var(--bg-hover);color:var(--text-primary)}.category-tab.active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.category-content{min-height:150px}.color-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.color-set-modal-footer{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1.25rem;border-top:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:0 0 8px 8px;flex-shrink:0}.color-set-footer-left,.color-set-footer-right{display:flex;align-items:center;gap:.5rem}.color-set-delete-confirm{display:flex;align-items:center;gap:.5rem;font-size:13px;color:var(--text-secondary)}.color-set-delete-disabled-reason{font-size:11px;color:var(--text-muted);font-style:italic}.color-set-btn{padding:.5rem 1rem;font-size:13px;border-radius:4px;cursor:pointer;transition:all .15s}.color-set-btn:disabled{opacity:.6;cursor:not-allowed}.color-set-btn-primary{background:var(--accent-primary);border:none;color:#fff}.color-set-btn-primary:hover:not(:disabled){background:var(--accent-hover)}.color-set-btn-secondary{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary)}.color-set-btn-secondary:hover:not(:disabled){background:var(--bg-hover)}.color-set-btn-danger{background:#f443361a;border:1px solid var(--accent-red);color:var(--accent-red)}.color-set-btn-danger:hover:not(:disabled){background:#f4433633}@media(max-width:768px){.color-set-modal{width:100%;height:100%;max-width:100vw;max-height:100vh;border-radius:0}.color-set-modal-header{border-radius:0}.color-set-modal-footer{border-radius:0;flex-direction:column;gap:.75rem}.color-set-footer-left,.color-set-footer-right{width:100%;justify-content:center}.color-set-delete-confirm{flex-wrap:wrap;justify-content:center}.category-tabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:.5rem}.category-tab{flex-shrink:0;padding:.5rem .875rem;font-size:13px}.color-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem}}.theme-selectors{display:flex;align-items:center;gap:6px;-webkit-app-region:no-drag}.theme-selector{position:relative}.theme-selector.loading{display:flex;align-items:center;gap:5px;padding:2px 6px;color:var(--text-muted);font-size:11px}.theme-selector-button{display:flex;align-items:center;gap:5px;padding:2px 6px;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm, 3px);color:var(--text-secondary);font-size:11px;cursor:pointer;transition:all .15s ease;-webkit-app-region:no-drag}.theme-selector-button:hover,.theme-selector-button[aria-expanded=true]{background:var(--bg-hover);color:var(--text-primary)}.theme-selector .theme-icon{display:flex;align-items:center;justify-content:center;width:12px;height:12px}.theme-selector .theme-icon svg{width:12px;height:12px}.theme-selector .theme-name{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.theme-selector .chevron{display:flex;align-items:center;justify-content:center;width:10px;height:10px;transition:transform .15s;opacity:.7}.theme-selector .chevron svg{width:10px;height:10px}.theme-selector-button[aria-expanded=true] .chevron{transform:rotate(180deg)}.theme-dropdown{position:absolute;top:100%;right:0;margin-top:4px;min-width:260px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);z-index:1000;overflow:hidden}.dropdown-header{padding:8px 12px 6px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);background:var(--bg-tertiary);border-bottom:1px solid var(--border-subtle)}.theme-list{max-height:320px;overflow-y:auto;background:var(--bg-secondary)}.theme-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;cursor:pointer;transition:background var(--transition-fast);background:var(--bg-secondary);color:var(--text-primary)}.theme-item:hover{background:var(--bg-hover);color:var(--text-primary)}.theme-item.selected{background:var(--bg-active);color:var(--text-primary)}.theme-item-name{display:flex;align-items:center;gap:8px;flex:1;font-size:13px;color:inherit;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.default-badge{flex-shrink:0;padding:2px 8px;background:var(--bg-tertiary);border-radius:var(--radius-pill);font-size:10px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.color-set-preview{display:flex;gap:2px;margin-right:8px;flex-shrink:0}.color-swatch{width:14px;height:14px;min-width:14px;min-height:14px;aspect-ratio:1;flex-shrink:0;border-radius:var(--radius-sm);border:1px solid rgba(0,0,0,.2)}.check-icon{display:flex;align-items:center;justify-content:center;width:16px;height:16px;color:var(--accent-green);flex-shrink:0;margin-right:4px}.check-icon svg{width:14px;height:14px}.theme-edit-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;opacity:0;transition:all var(--transition-fast)}.theme-item:hover .theme-edit-btn{opacity:1}.theme-edit-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.theme-edit-btn svg{width:14px;height:14px}.theme-dropdown-footer{border-top:1px solid var(--border-color);padding:8px;background:var(--bg-secondary)}.create-theme-btn{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;background:var(--bg-tertiary);border:1px dashed var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all var(--transition-normal)}.create-theme-btn:hover{background:var(--bg-hover);border-color:var(--accent-primary);color:var(--accent-primary)}.create-theme-btn svg{width:14px;height:14px}.shutdown-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:2000;animation:shutdownFadeIn .15s ease}@keyframes shutdownFadeIn{0%{opacity:0}to{opacity:1}}.shutdown-dialog{background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:90%;max-width:420px;display:flex;flex-direction:column;animation:shutdownSlideIn .15s ease}@keyframes shutdownSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.shutdown-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:var(--radius-xl) var(--radius-xl) 0 0}.shutdown-dialog-title{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-size:1rem;font-weight:500}.shutdown-dialog-title svg{width:18px;height:18px;color:#c03}.shutdown-dialog-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm)}.shutdown-dialog-close:hover{background:var(--bg-hover);color:var(--text-primary)}.shutdown-dialog-close svg{width:16px;height:16px}.shutdown-dialog-body{padding:1.25rem;color:var(--text-primary);font-size:.875rem;line-height:1.5}.shutdown-dialog-warning{display:flex;align-items:flex-start;gap:.625rem;padding:.75rem;margin-bottom:1rem;background:#cc96001a;border:1px solid rgba(204,150,0,.3);border-radius:var(--radius-md);color:var(--text-primary);font-size:.8125rem}.shutdown-dialog-warning svg{flex-shrink:0;width:16px;height:16px;color:#cc9600;margin-top:1px}.shutdown-dialog-actions{display:flex;gap:.5rem;justify-content:flex-end;padding:.75rem 1.25rem;border-top:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:0 0 var(--radius-xl) var(--radius-xl)}.shutdown-btn{padding:.4375rem .875rem;border-radius:var(--radius-md);font-size:.8125rem;font-weight:500;cursor:pointer;border:none;transition:background .15s ease}.shutdown-btn:disabled{opacity:.6;cursor:not-allowed}.shutdown-btn.cancel{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.shutdown-btn.cancel:hover:not(:disabled){background:var(--bg-hover)}.shutdown-btn.shutdown-only{background:var(--accent-primary);color:#fff}.shutdown-btn.shutdown-only:hover:not(:disabled){background:#17b}.shutdown-btn.disable-all{background:#cc00331f;color:#c03;border:1px solid rgba(204,0,51,.3)}.shutdown-btn.disable-all:hover:not(:disabled){background:#c033}.workspace-tab-bar{display:flex;align-items:center;gap:2px;padding:4px 8px 0;background:var(--bg-secondary);border-bottom:1px solid var(--border-subtle);min-height:32px;overflow-x:auto;overflow-y:hidden}.workspace-tab{display:flex;align-items:center;gap:6px;padding:6px 10px;font-size:12px;color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-bottom:none;border-radius:6px 6px 0 0;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background-color .15s,color .15s}.workspace-tab:hover{background:var(--bg-hover);color:var(--text-primary)}.workspace-tab-selected{background:var(--list-active-background);color:var(--text-primary);border-bottom:1px solid var(--list-active-background);box-shadow:inset 0 2px 0 var(--border-focus);margin-bottom:-1px;z-index:1}.workspace-tab-selected:hover{background:var(--list-active-hover-background);border-bottom-color:var(--list-active-hover-background)}.workspace-tab-dragging{opacity:.7}.workspace-tab-drag-handle{display:flex;align-items:center;justify-content:center;padding:2px;border-radius:2px;cursor:grab;color:var(--text-muted)}.workspace-tab-drag-handle:hover{color:var(--text-secondary)}.workspace-tab-drag-handle:active{cursor:grabbing}.workspace-tab-name{max-width:120px;overflow:hidden;text-overflow:ellipsis}.app-loading-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#1e1e1e;z-index:9999}.app-loading-content{display:flex;flex-direction:column;align-items:center;gap:16px}.app-loading-spinner{width:32px;height:32px;border:2px solid rgba(255,255,255,.1);border-top-color:#ffffff80;border-radius:50%;animation:app-loading-spin .8s linear infinite}@keyframes app-loading-spin{to{transform:rotate(360deg)}}.app-loading-text{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px;color:#ffffff80}.app-layout{display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden;background:var(--bg-primary)}.app-header{display:flex;align-items:center;justify-content:space-between;height:30px;padding:0 10px;background-color:var(--bg-tertiary);border-bottom:1px solid var(--border-subtle);flex-shrink:0;-webkit-app-region:drag}.app-title{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:400;color:var(--text-secondary);letter-spacing:-.01em}.app-logo{width:20px;height:20px;display:flex;align-items:center;justify-content:center}.app-logo svg{width:18px;height:18px}.app-header-left{display:flex;align-items:center;gap:8px;-webkit-app-region:no-drag}.app-header-left .header-divider{margin-right:4px}.header-toggle-buttons{display:flex;align-items:center;gap:2px;-webkit-app-region:no-drag}.header-toggle-btn{display:flex;align-items:center;justify-content:center;width:26px;height:22px;padding:0;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm, 3px);color:var(--text-muted);cursor:pointer;transition:all .15s ease;-webkit-app-region:no-drag}.header-toggle-btn svg{width:16px;height:16px;stroke:currentColor}.header-toggle-btn:hover{background:var(--bg-hover);color:var(--text-secondary)}.header-toggle-btn.active{color:var(--text-secondary)}.header-toggle-btn.active:hover{color:var(--text-primary)}.app-header-right{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--text-secondary);-webkit-app-region:no-drag}.header-group{display:flex;align-items:center;gap:10px}.header-status-group{gap:12px}.header-divider{width:1px;height:14px;background:var(--border-subtle);flex-shrink:0}.status-item{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text-secondary)}.status-item svg{flex-shrink:0}.status-license.status-licensed{color:var(--text-secondary)}.status-license.status-unlicensed{color:var(--text-muted);opacity:.9}.version-dot-pulse{animation:version-pulse 1.5s ease-in-out infinite}@keyframes version-pulse{0%,to{opacity:1}50%{opacity:.5}}.app-layout.mobile{height:100dvh}.app-header.mobile-header{height:var(--mobile-header-height);padding:0 12px;justify-content:space-between;gap:8px}.mobile-header-status{display:flex;align-items:center;gap:12px;font-size:11px;color:var(--text-muted);min-width:0;overflow:hidden}.mobile-header-status .status-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-header .app-title{font-size:14px;font-weight:500}.mobile-header .app-logo svg{width:18px;height:18px}.mobile-header-right{flex-shrink:0}.app-layout.mobile .app-content.mobile-content{flex:1;overflow:hidden;padding-bottom:var(--mobile-nav-height)}.mobile-panel{height:100%;width:100%}.mobile-panel-hidden{display:none;overflow:hidden}.mobile-panel .pane-container,.mobile-panel .pane-content{height:100%}.app-layout.mobile .pane-header{display:none}.mobile-panel.dashboard-panel .dashboard-pane .pane-content{background-color:var(--bg-primary)}.mobile-panel.script-panel .editor-pane .pane-content{overflow:hidden}@media(min-width:769px){.mobile-header-status,.mobile-header-right{display:none}}.app-content{flex:1;overflow:hidden}.app-content [class*=splitViewView]:not(:first-child):before{display:none!important}.app-content [class*=sash-module_sash][class*=vertical]:before{width:1px!important;left:calc(50% - .5px)!important}.pane-container{display:flex;flex-direction:column;height:100%;background-color:var(--bg-primary)}.pane-header{display:flex;align-items:center;gap:8px;min-height:40px;height:40px;padding:0 20px 0 12px;background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--text-secondary);flex-shrink:0}.pane-header-subtitle{font-weight:400;text-transform:none;letter-spacing:normal;color:var(--text-muted);font-size:11px;margin-left:auto}.pane-content{flex:1;overflow:auto}.explorer-pane{background-color:var(--bg-secondary)}.explorer-pane .pane-content{padding:0}.dashboard-pane .pane-content{background-color:var(--bg-primary);overflow:hidden}.editor-pane .pane-content{overflow:hidden}.element-template-editor-page{display:flex;flex-direction:column;height:100vh;background:var(--bg-primary);color:var(--text-primary)}.we-btn{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border:1px solid transparent;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,color .15s}.we-btn svg{width:14px;height:14px;flex-shrink:0}.we-btn:disabled{opacity:.45;cursor:not-allowed}.we-btn--primary{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.we-btn--primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.we-btn--ghost{background:transparent;color:var(--text-secondary);border-color:var(--border-color)}.we-btn--ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.we-btn--outline{background:transparent;color:var(--accent-primary);border-color:var(--accent-primary)}.we-btn--outline:hover:not(:disabled){background:var(--bg-hover)}.we-btn--danger{background:transparent;color:var(--accent-red, #f14c4c);border-color:var(--accent-red, #f14c4c)}.we-btn--danger:hover{background:var(--accent-red, #f14c4c);color:#fff}.we-btn--sm{padding:3px 10px;font-size:11px}.we-input,.we-select{padding:5px 10px;background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:6px;font-size:12px;outline:none;transition:border-color .15s}.we-input:focus,.we-select:focus{border-color:var(--accent-primary)}.we-input--name{font-weight:500;min-width:160px}.we-topbar{display:flex;align-items:center;gap:12px;padding:6px 12px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color);flex-shrink:0;min-height:40px}.we-topbar-center{flex:1;display:flex;align-items:center;gap:8px;min-width:0}.we-topbar-center .we-input--name{flex:1;max-width:280px}.we-topbar-center .we-input:not(.we-input--name){flex:1;max-width:220px}.we-topbar-builtin-banner{display:inline-flex;align-items:center;min-height:30px;padding:0 10px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-secondary);color:var(--text-secondary);font-size:12px}.we-supported-types-wrap{position:relative;display:flex;align-items:center;gap:8px}.we-supported-types-label{font-size:11px;color:var(--text-muted);white-space:nowrap}.we-supported-types-trigger{display:inline-flex;align-items:center;justify-content:space-between;gap:6px;min-width:140px;max-width:220px;text-align:left;cursor:pointer}.we-supported-types-summary{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.we-supported-types-chevron{flex-shrink:0;font-size:10px;color:var(--text-muted)}.we-supported-types-dropdown{position:absolute;top:100%;left:0;margin-top:2px;min-width:100%;max-height:280px;overflow-y:auto;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;box-shadow:0 4px 12px #00000040;z-index:100;padding:4px}.we-supported-types-option{display:flex;align-items:center;gap:8px;width:100%;padding:6px 10px;border:none;border-radius:4px;background:transparent;color:var(--text-primary);font-size:12px;text-align:left;cursor:pointer;transition:background .1s}.we-supported-types-option:hover{background:var(--bg-hover)}.we-supported-types-option.selected{background:var(--bg-selection);color:var(--text-primary)}.we-supported-types-option-check{width:14px;flex-shrink:0;font-size:11px;color:var(--accent-primary)}.we-topbar-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.we-body{flex:1;display:flex;min-height:0;overflow:hidden}.we-sidebar{width:200px;min-width:160px;display:flex;flex-direction:column;border-right:1px solid var(--border-color);background:var(--bg-secondary);flex-shrink:0}.we-sidebar-section{border-bottom:1px solid var(--border-color)}.we-sidebar-section-header{width:100%;display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border:none;background:transparent;color:var(--text-muted);cursor:pointer}.we-sidebar-section-header:hover{background:var(--bg-hover)}.we-sidebar-section-chevron{font-size:10px;color:var(--text-muted);transition:transform .15s ease}.we-sidebar-section-chevron.open{transform:rotate(180deg)}.we-sidebar-list--section{max-height:40vh;border-top:1px solid var(--border-color)}.we-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-bottom:1px solid var(--border-color)}.we-sidebar-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.we-sidebar-list{flex:1;overflow-y:auto;padding:4px}.we-sidebar-empty{padding:16px 10px;font-size:12px;color:var(--text-muted);text-align:center}.we-sidebar-item{display:flex;flex-direction:column;gap:1px;width:100%;padding:7px 10px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text-primary);cursor:pointer;text-align:left;font-family:inherit;transition:background .1s}.we-sidebar-item:hover{background:var(--bg-hover)}.we-sidebar-item.active{background:var(--list-active-background, var(--bg-active));border-color:var(--border-focus)}.we-sidebar-item--builtin{background:var(--bg-primary)}.we-sidebar-item-name{font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.we-sidebar-item-type{font-size:10px;color:var(--text-muted)}.we-sidebar-footer{padding:8px 10px;border-top:1px solid var(--border-color)}.we-sidebar-guide-link{display:block;font-size:11px;color:var(--accent-primary);text-decoration:none;line-height:1.4}.we-sidebar-guide-link:hover{text-decoration:underline}.we-allotment{flex:1;min-width:0}.we-pane{height:100%;overflow:hidden}.we-pane>div{height:100%!important}.we-sp-layout{height:100%!important;border:none!important;border-radius:0!important;display:flex!important;flex-direction:row!important}.we-sp-layout>div{flex:1 1 0!important;min-width:0!important;height:100%!important;max-height:100%!important;overflow:hidden!important}.we-sp-layout>div:last-child{min-width:280px!important}.we-preview-canvas{width:100%;height:100%;min-height:200px;min-width:0;overflow:hidden;display:flex;flex-direction:column}.we-preview-grid{flex:1;min-height:200px;width:100%}.we-preview-grid .react-grid-item{background:transparent}.we-preview-host.template-container{display:flex;flex-direction:column;height:100%;min-height:0;background:transparent;border:none;border-radius:0;overflow:hidden;box-shadow:none}.we-preview-drag-handle{display:flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0;border-radius:0;background:none;color:var(--text-muted);cursor:grab;box-shadow:none;filter:none;pointer-events:auto;border:none}.we-preview-drag-handle.template-header{padding:0;min-height:0;background:none;border:none;border-bottom:none}.we-preview-drag-handle:active{cursor:grabbing}.we-preview-drag-handle svg{width:28px;height:28px;display:block;fill:currentColor}.we-preview-iframe-wrap{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;background:transparent}.we-preview-iframe-wrap>div{flex:1;min-height:0;display:flex;flex-direction:column;background:transparent!important}.we-preview-iframe-wrap .sp-preview-container,.we-preview-iframe-wrap [class*=preview-container]{background:transparent!important}.we-preview-iframe-wrap [class*=preview-actions]{display:none!important}.we-preview-iframe-wrap iframe{flex:1;min-height:0;border:none;background:transparent}.we-preview-iframe{width:100%;height:100%;border:none;background:transparent;display:block}.we-preview-loading{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted, #888);font-size:13px}.we-preview-grid .react-grid-item.react-grid-placeholder{background:var(--accent-primary);opacity:.15;border-radius:var(--radius-lg)}.we-preview-grid .react-grid-item>.react-resizable-handle{background:none;width:36px;height:36px}.we-preview-grid .react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:6px;bottom:6px;width:16px;height:16px;border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);opacity:0;transition:opacity .15s ease}.we-preview-grid .react-grid-item:hover>.react-resizable-handle:after{opacity:1}.we-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:13px}.we-preview-bg{display:flex;align-items:center;gap:5px;flex-shrink:0;padding:0 4px;border-left:1px solid var(--border-color);margin-left:4px}.we-preview-bg-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);margin-right:2px;white-space:nowrap}.we-preview-bg-swatch{width:18px;height:18px;border-radius:50%;border:2px solid var(--border-color);cursor:pointer;padding:0;flex-shrink:0;transition:border-color .15s,box-shadow .15s;box-shadow:inset 0 0 0 1px #80808026}.we-preview-bg-swatch:hover{border-color:var(--text-muted)}.we-preview-bg-swatch.active{border-color:var(--accent-primary);box-shadow:0 0 0 1px var(--accent-primary)}.we-preview-bg-swatch--transparent{background-color:var(--bg-primary, #1e1e1e);background-image:linear-gradient(45deg,rgba(128,128,128,.25) 25%,transparent 25%),linear-gradient(-45deg,rgba(128,128,128,.25) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(128,128,128,.25) 75%),linear-gradient(-45deg,transparent 75%,rgba(128,128,128,.25) 75%);background-size:6px 6px;background-position:0 0,0 3px,3px -3px,-3px 0}.we-preview-bg .color-picker-popover--compact .color-picker-popover-swatch{width:18px;height:18px;border-radius:50%;border-width:2px}.we-preview-allotment{height:100%}.we-controls-panel{display:flex;flex-direction:column;height:100%;background:#1e1e1e;border-top:1px solid #333;color:#ccc;font-size:13px}.we-controls-header{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid #333;flex-shrink:0}.we-controls-type-label{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:#888;white-space:nowrap}.we-controls-type-select{flex:1;min-width:0;background:#2d2d2d;border:1px solid #444;border-radius:3px;color:#ccc;padding:4px 6px;font-size:12px}.we-controls-type-select:disabled{opacity:.6;cursor:not-allowed}.we-controls-body{flex:1;overflow-y:auto;padding:4px 0}.we-controls-section>summary{padding:6px 12px;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:#888;cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom:1px solid #2a2a2a}.we-controls-section>summary:hover{color:#bbb}.we-controls-section-body{padding:4px 12px 8px}.we-controls-empty{padding:20px 12px;text-align:center;color:#666;font-size:12px}.we-controls-empty code{background:#2d2d2d;padding:1px 4px;border-radius:3px;font-size:11px}.mock-device-page{display:flex;flex-direction:column;height:100vh;background:var(--bg-primary);color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.mock-page-error{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--accent-red, #f44);font-size:1.2rem}.mock-device-content{display:flex;flex-direction:column;flex:1;overflow:hidden;background-color:var(--bg-primary)}.mock-device-allotment{flex:1;min-width:0}.mock-device-pane{height:100%;min-height:0;overflow-y:auto;padding:12px;background-color:var(--bg-primary)}.mock-device-header{display:flex;align-items:center;justify-content:space-between;height:30px;padding:0 10px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-subtle);box-shadow:0 1px #0000001a;gap:16px;flex-shrink:0}.mock-header-title{display:flex;align-items:center;gap:10px}.mock-header-title h1{font-size:12px;font-weight:600;margin:0;color:var(--text-primary)}.mock-header-subtitle{font-size:11px;color:var(--text-secondary)}.mock-header-status{display:flex;align-items:center;gap:12px;font-size:11px;color:var(--text-secondary)}.mock-status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.mock-status-dot.connected{background:var(--accent-green, #4ec9b0)}.mock-status-dot.disconnected{background:var(--text-muted)}.port-controls-panel h2,.port-table-container h2{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;margin:0 0 8px;padding-bottom:6px;border-bottom:1px solid var(--border-subtle);color:var(--text-secondary)}.port-control-inline{display:flex;align-items:center;gap:6px}.port-control-sep{color:var(--text-muted);font-size:11px;margin:0 2px}.port-control-value-btn{font-size:12px;font-weight:600;font-family:Consolas,Fira Code,monospace;min-width:70px;text-align:center;padding:4px 8px;border-radius:var(--radius-md, 5px);border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}.port-control-value-btn:hover{border-color:var(--border-focus);box-shadow:var(--shadow-xs)}.port-control-value-btn:active{background:var(--bg-active)}.port-control-value{font-size:13px;font-weight:600;min-width:55px;text-align:right;font-family:Consolas,Fira Code,monospace}.port-control-toggle{padding:4px 12px;border-radius:var(--radius-md, 5px);border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;font-size:11px;font-weight:600;transition:all .15s}.port-control-toggle.active{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.port-control-btn{padding:4px 10px;border-radius:var(--radius-md, 5px);border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;font-size:11px;font-weight:600;transition:all .15s}.port-control-btn:hover{background:var(--bg-hover);border-color:var(--text-muted)}.no-controls{padding:20px;text-align:center;color:var(--text-secondary);font-size:12px;font-style:italic}.port-table-container{flex:1;overflow-y:auto;padding:0}.port-table{width:100%;border-collapse:collapse;font-size:12px}.port-controls-panel .port-table{margin-top:0}.port-controls-panel .port-table td{padding:4px 8px;vertical-align:middle}.port-table th{text-align:left;padding:6px 8px;background:var(--bg-secondary);border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);font-weight:600;font-size:11px;position:sticky;top:0}.port-table td{padding:5px 8px;border-bottom:1px solid var(--border-subtle);font-family:Consolas,Fira Code,monospace}.port-table tr:hover td{background:var(--bg-hover)}.port-type-badge{display:inline-block;padding:1px 6px;border-radius:var(--radius-sm, 3px);font-size:10px;font-weight:600;background:var(--bg-secondary);color:var(--accent-primary);border:1px solid var(--border-color)}.message-log-container{flex:1;min-height:0;display:flex;flex-direction:column}.message-log-header{display:flex;align-items:center;justify-content:space-between;height:35px;padding:0 12px;background:var(--bg-secondary);border-bottom:1px solid var(--border-subtle);box-shadow:0 1px #0000000f;flex-shrink:0}.message-log-header h2{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;margin:0;color:var(--text-secondary)}.message-log-clear-btn{padding:2px 8px;border-radius:var(--radius-sm, 3px);border:1px solid var(--border-color);background:transparent;color:var(--text-secondary);cursor:pointer;font-size:11px}.message-log-clear-btn:hover{background:var(--bg-hover)}.message-log-entries{flex:1;min-height:0;overflow-y:auto;padding:4px 12px;font-family:Consolas,Fira Code,monospace;font-size:11px;line-height:1.6}.message-log-entry{display:flex;gap:8px;white-space:nowrap}.msg-direction{font-weight:700;min-width:20px}.msg-direction.tx{color:var(--accent-blue, #569cd6)}.msg-direction.rx{color:var(--accent-green, #4ec9b0)}.msg-timestamp{color:var(--text-muted);min-width:80px}.msg-content{color:var(--text-primary)}.message-log-empty{padding:20px;text-align:center;color:var(--text-muted);font-style:italic;font-size:12px}.value-change-glow{display:inline-block;border-radius:4px;animation:value-change-glow 2s ease-out forwards}@keyframes value-change-glow{0%{box-shadow:0 0 10px 3px #569cd699}to{box-shadow:none}}.pin-lock-loading-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2100;background:var(--bg-primary);display:flex;align-items:center;justify-content:center;padding:1rem}.pin-lock-loading-card,.pin-lock-error-card{width:min(380px,100%);border:1px solid var(--border-color);border-radius:var(--radius-xl);background:var(--bg-secondary);box-shadow:var(--shadow-lg);padding:1.25rem;text-align:center}.pin-lock-loading-card p,.pin-lock-error-card p{margin:0;color:var(--text-secondary)}.pin-lock-spinner{width:30px;height:30px;border:3px solid var(--bg-tertiary);border-top-color:var(--accent-primary);border-radius:999px;margin:0 auto .9rem;animation:pinLockSpin 1s linear infinite}.pin-lock-error-card h2{margin:0 0 .5rem;color:var(--text-primary);font-size:1rem}.pin-lock-error-card button{margin-top:1rem;min-height:36px;min-width:120px;border:1px solid var(--accent-primary);border-radius:var(--radius-md);background:var(--accent-primary);color:#fff;font-weight:500;cursor:pointer}.pin-lock-error-card button:hover{background:#17b}@keyframes pinLockSpin{to{transform:rotate(360deg)}}.log-viewer{display:flex;flex-direction:column;height:100%;font-family:var(--font-mono);font-size:13px;background:var(--bg-primary);color:var(--text-primary)}.log-viewer-back{padding:4px 12px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;font-size:12px;white-space:nowrap}.log-viewer-back:hover{background:var(--bg-hover)}.log-viewer-toolbar{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-shrink:0;flex-wrap:wrap}.log-viewer-toolbar input[type=text]{padding:4px 8px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);font-size:12px;min-width:200px}.log-viewer-toolbar button{padding:4px 12px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;font-size:12px;white-space:nowrap}.log-viewer-toolbar button:hover{background:var(--bg-hover)}.log-viewer-toolbar button.active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.level-filters{display:flex;gap:4px}.level-chip{padding:2px 8px;border-radius:12px;border:1px solid var(--border-color);background:transparent;cursor:pointer;font-size:11px;text-transform:uppercase;letter-spacing:.5px}.level-chip.selected{color:#fff}.level-chip[data-level=Verbose],.level-chip[data-level=Debug]{border-color:var(--accent-green)}.level-chip[data-level=Debug].selected{background:var(--accent-green)}.level-chip[data-level=Information]{border-color:var(--accent-blue)}.level-chip[data-level=Information].selected{background:var(--accent-blue);color:#000}.level-chip[data-level=Warning]{border-color:var(--accent-yellow)}.level-chip[data-level=Warning].selected{background:var(--accent-yellow);color:#000}.level-chip[data-level=Error],.level-chip[data-level=Fatal]{border-color:var(--accent-red)}.level-chip[data-level=Error].selected,.level-chip[data-level=Fatal].selected{background:var(--accent-red)}.log-viewer-list{flex:1;overflow-y:auto;padding:4px 0}.log-entry{display:flex;padding:2px 12px;cursor:pointer;line-height:1.5;border-bottom:1px solid transparent}.log-entry:hover{background:var(--bg-hover)}.log-entry-time{color:var(--text-secondary);margin-right:8px;white-space:nowrap;min-width:85px}.log-entry-level{margin-right:8px;font-weight:600;min-width:40px;text-transform:uppercase;font-size:11px;line-height:1.7}.log-entry-level.Debug{color:var(--accent-green)}.log-entry-level.Information{color:var(--accent-blue)}.log-entry-level.Warning{color:var(--accent-yellow)}.log-entry-level.Error,.log-entry-level.Fatal{color:var(--accent-red)}.log-entry-category{color:var(--accent-purple);margin-right:8px;white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis}.log-entry-message{flex:1;white-space:pre-wrap;word-break:break-word}.log-entry-detail{padding:8px 12px 8px 48px;background:var(--bg-secondary);font-size:12px}.log-entry-detail pre{margin:4px 0;white-space:pre-wrap;word-break:break-word;color:var(--accent-orange)}.log-entry-detail .properties{display:grid;grid-template-columns:auto 1fr;gap:2px 12px}.log-entry-detail .prop-key{color:var(--accent-blue)}.log-entry-detail .prop-value{color:var(--accent-orange)}.log-viewer-status{padding:4px 12px;background:var(--bg-secondary);border-top:1px solid var(--border-color);font-size:11px;color:var(--text-secondary);display:flex;justify-content:space-between;flex-shrink:0}.log-viewer-status .status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle}.log-viewer-status .status-dot.connected{background:var(--accent-green)}.log-viewer-status .status-dot.disconnected{background:var(--accent-red)}.device-diag{display:flex;flex-direction:column;height:100vh;font-family:var(--font-mono);font-size:13px;background:var(--bg-primary);color:var(--text-primary)}.device-diag-header{display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-shrink:0}.device-diag-back{padding:4px 12px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;font-size:12px;white-space:nowrap}.device-diag-back:hover{background:var(--bg-hover)}.device-diag-title{flex:1;font-size:14px;font-weight:600;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.device-diag-tabs{display:flex;gap:4px}.device-diag-tabs button{padding:4px 12px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;font-size:12px}.device-diag-tabs button:hover{background:var(--bg-hover)}.device-diag-tabs button.active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.device-diag-toolbar{display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-shrink:0;flex-wrap:wrap}.device-diag-toolbar input[type=text]{padding:4px 8px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);font-size:12px;min-width:180px}.device-diag-toolbar button{padding:4px 12px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;font-size:12px;white-space:nowrap}.device-diag-toolbar button:hover{background:var(--bg-hover)}.device-diag-toolbar button.active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.diag-type-filters{display:flex;gap:4px}.diag-type-chip{padding:2px 8px;border-radius:12px;border:1px solid var(--border-color);background:transparent;cursor:pointer;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary)}.diag-type-chip.selected{color:#fff}.diag-type-chip[data-type=Rx]{border-color:var(--accent-blue)}.diag-type-chip[data-type=Rx].selected{background:var(--accent-blue);color:#000}.diag-type-chip[data-type=Tx]{border-color:var(--accent-yellow)}.diag-type-chip[data-type=Tx].selected{background:var(--accent-yellow);color:#000}.diag-type-chip[data-type=Connected]{border-color:var(--accent-green)}.diag-type-chip[data-type=Connected].selected{background:var(--accent-green)}.diag-type-chip[data-type=Disconnected]{border-color:var(--accent-orange)}.diag-type-chip[data-type=Disconnected].selected{background:var(--accent-orange);color:#000}.diag-type-chip[data-type=Error]{border-color:var(--accent-red)}.diag-type-chip[data-type=Error].selected{background:var(--accent-red)}.diag-type-chip[data-type=General]{border-color:var(--text-secondary)}.diag-type-chip[data-type=General].selected{background:var(--text-secondary);color:#000}.device-diag-list{flex:1;overflow-y:auto;padding:4px 0;min-height:0}.diag-entry{display:flex;padding:2px 12px;line-height:1.5;border-bottom:1px solid transparent}.diag-entry:hover{background:var(--bg-hover)}.diag-entry-time{color:var(--text-secondary);margin-right:8px;white-space:nowrap;min-width:85px}.diag-entry-type{margin-right:8px;font-weight:600;min-width:30px;text-transform:uppercase;font-size:11px;line-height:1.7}.diag-entry-type.Rx{color:var(--accent-blue)}.diag-entry-type.Tx{color:var(--accent-yellow)}.diag-entry-type.Connected{color:var(--accent-green)}.diag-entry-type.Disconnected{color:var(--accent-orange)}.diag-entry-type.Error{color:var(--accent-red)}.diag-entry-type.General{color:var(--text-secondary)}.diag-entry-message{flex:1;white-space:pre-wrap;word-break:break-word}.device-diag-controls{display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--bg-secondary);border-top:1px solid var(--border-color);flex-shrink:0}.diag-transmit{display:flex;flex:1;gap:6px}.diag-transmit input{flex:1;padding:6px 10px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);font-size:13px;font-family:inherit}.diag-transmit input:disabled{opacity:.5;cursor:not-allowed}.diag-transmit button{padding:6px 16px;border:1px solid var(--accent-primary);border-radius:4px;background:var(--accent-primary);color:#fff;cursor:pointer;font-size:13px;font-family:inherit}.diag-transmit button:disabled{opacity:.4;cursor:not-allowed}.diag-actions{display:flex;gap:6px}.diag-actions button{padding:6px 14px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;font-size:12px;white-space:nowrap}.diag-actions button:hover{background:var(--bg-hover)}.diag-actions button.active{background:var(--accent-orange);border-color:var(--accent-orange);color:#000}.device-diag-status{padding:4px 12px;background:var(--bg-secondary);border-top:1px solid var(--border-color);font-size:11px;color:var(--text-secondary);display:flex;justify-content:space-between;flex-shrink:0}.device-diag-status .status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle}.device-diag-status .status-dot.connected{background:var(--accent-green)}.device-diag-status .status-dot.disconnected{background:var(--accent-red)}.device-diag-history{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0}.device-diag-history-hint{padding:8px 12px;font-size:12px;color:var(--text-secondary);background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.plugin-store-page{display:flex;flex-direction:column;height:100vh;background:var(--bg-primary);color:var(--text-primary)}.ps-topbar{display:flex;align-items:center;gap:12px;padding:8px 16px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color);flex-shrink:0;min-height:42px}.ps-topbar h1{font-size:14px;font-weight:600;margin:0;color:var(--text-primary);display:flex;align-items:center;gap:8px}.ps-topbar h1 svg{width:16px;height:16px;color:var(--accent-primary);stroke:currentColor}.ps-tabs{display:flex;gap:4px;margin-left:16px}.ps-tab{padding:4px 12px;font-size:12px;font-weight:500;cursor:pointer;transition:background .15s,color .15s;background:transparent;border:none;border-radius:4px;color:var(--text-muted)}.ps-tab:hover,.ps-tab--active{color:var(--text-primary);background:var(--bg-hover)}.ps-topbar-right{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:11px;color:var(--text-muted)}.ps-content{flex:1;overflow-y:auto;padding:20px}.ps-card-name{font-size:13px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ps-badge-official{display:inline-flex;align-items:center;gap:3px;padding:1px 6px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--accent-blue, #569cd6);background:#569cd61f;border-radius:3px;flex-shrink:0}.ps-badge--beta{display:inline-flex;align-items:center;gap:3px;padding:1px 6px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;background:#f59e0b;color:#000;border-radius:3px;flex-shrink:0}.ps-badge--core{display:inline-flex;align-items:center;gap:3px;padding:1px 6px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);background:var(--bg-hover);border-radius:3px;flex-shrink:0}.ps-badge-installed{display:inline-flex;align-items:center;gap:3px;padding:1px 6px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--accent-green, #4ec9b0);background:#4ec9b01f;border-radius:3px;flex-shrink:0}.ps-tag{display:inline-block;padding:1px 6px;font-size:10px;color:var(--text-muted);background:var(--bg-hover);border-radius:3px;white-space:nowrap}.ps-btn{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;border:1px solid transparent;border-radius:5px;font-size:11px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,color .15s;flex-shrink:0}.ps-btn:disabled{opacity:.45;cursor:not-allowed}.ps-btn svg{width:12px;height:12px;stroke:currentColor}.ps-btn--primary{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.ps-btn--primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.ps-btn--ghost{background:transparent;color:var(--text-secondary);border-color:var(--border-color)}.ps-btn--ghost:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.ps-btn--success{background:transparent;color:var(--accent-green, #4ec9b0);border-color:var(--accent-green, #4ec9b0);cursor:default}.ps-btn--beta{background:transparent;border-color:#f59e0b;color:#f59e0b}.ps-btn--beta:hover:not(:disabled){background:#f59e0b1f}.ps-loading,.ps-error,.ps-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:60px 20px;text-align:center}.ps-loading{color:var(--text-muted);font-size:13px}.ps-spinner{width:24px;height:24px;border:2px solid var(--border-subtle);border-top-color:var(--accent-primary);border-radius:50%;animation:ps-spin .8s linear infinite}@keyframes ps-spin{to{transform:rotate(360deg)}}.ps-error{color:var(--accent-red, #f14c4c);font-size:13px}.ps-empty{color:var(--text-muted);font-size:13px}.ps-empty svg{width:32px;height:32px;opacity:.4;stroke:currentColor}.ps-installed-section{margin-top:32px;max-width:1200px}.ps-installed-title{font-size:13px;font-weight:600;margin:0 0 4px;color:var(--text-primary)}.ps-installed-desc{font-size:11px;color:var(--text-muted);margin:0 0 12px}.ps-btn--uninstall{color:var(--accent-red, #f14c4c)}.ps-btn--uninstall:hover:not(:disabled){background:#f14c4c1f;color:var(--accent-red, #f14c4c)}.ps-sideload{margin-top:32px;max-width:1200px;border:1px solid var(--border-subtle);border-radius:6px;background:var(--bg-secondary);overflow:hidden}.ps-sideload-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 16px;background:transparent;border:none;color:var(--text-primary);font-size:12px;font-weight:500;cursor:pointer;transition:background .15s}.ps-sideload-header:hover{background:var(--bg-hover)}.ps-sideload-title{color:var(--text-secondary)}.ps-sideload-chevron{font-size:14px;color:var(--text-muted);width:20px;text-align:center}.ps-sideload-body{padding:12px 16px 16px;border-top:1px solid var(--border-subtle)}.ps-sideload-desc{margin:0 0 12px;font-size:11px;color:var(--text-muted)}.ps-sideload-fields{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.ps-sideload-fields label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--text-secondary)}.ps-sideload-input{padding:6px 10px;font-size:12px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary)}.ps-sideload-input::placeholder{color:var(--text-muted)}.ps-sideload-input:focus{outline:none;border-color:var(--accent-primary)}.ps-sideload-footer{display:flex;align-items:center;gap:12px}.ps-sideload-error{font-size:11px;color:var(--accent-red, #f14c4c)}.ps-filter-bar{display:flex;align-items:center;gap:12px;padding:8px 0 12px;flex-wrap:wrap}.ps-filter-bar label{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-secondary);cursor:pointer}.ps-filter-bar input[type=checkbox]{cursor:pointer}.ps-filter-select{padding:4px 8px;font-size:12px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);min-width:180px;cursor:pointer}.ps-filter-select:focus{outline:none;border-color:var(--accent-primary)}.ps-filter-search{padding:4px 8px;font-size:12px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);min-width:160px}.ps-filter-search::placeholder{color:var(--text-muted)}.ps-filter-search:focus{outline:none;border-color:var(--accent-primary)}.ps-table-container{overflow-y:auto;border:1px solid var(--border-subtle);border-radius:6px;background:var(--bg-secondary)}.ps-table{width:100%;border-collapse:collapse;font-size:12px}.ps-table th{text-align:left;padding:6px 8px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);font-weight:600;font-size:11px;position:sticky;top:0}.ps-table td{padding:5px 8px;border-bottom:1px solid var(--border-subtle)}.ps-table tr:hover td{background:var(--bg-hover)}.ps-table .ps-cell-badges{display:flex;flex-wrap:wrap;gap:4px}.ps-table .ps-cell-tags{display:flex;flex-wrap:wrap;gap:4px;max-width:180px}.ps-table .ps-cell-actions{display:flex;gap:4px;flex-wrap:wrap}.ps-accordion-toolbar{display:flex;align-items:center;gap:8px;padding:0 0 12px}.ps-accordion{display:flex;flex-direction:column;gap:12px}.ps-collection-section{border:1px solid var(--border-subtle);border-radius:6px;background:var(--bg-secondary);overflow:hidden}.ps-collection-header{display:flex;align-items:center;gap:8px;width:100%;padding:0;background:transparent}.ps-collection-toggle{display:flex;align-items:center;gap:8px;flex:1;padding:10px 16px;background:transparent;border:none;color:var(--text-primary);font-size:12px;font-weight:500;cursor:pointer;transition:background .15s;text-align:left;min-width:0}.ps-collection-toggle:hover{background:var(--bg-hover)}.ps-collection-caret{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:20px;color:var(--text-muted)}.ps-collection-caret svg{width:16px;height:16px;stroke:currentColor}.ps-collection-title{flex:1;color:var(--text-primary)}.ps-collection-actions{display:flex;align-items:center;gap:8px;padding:8px 16px 8px 0}.ps-collection-body{border-top:1px solid var(--border-subtle);padding:0}:root{--bg-primary: #1e1e1e;--bg-secondary: #252526;--bg-tertiary: #2d2d2d;--bg-hover: #2a2d2e;--bg-active: #37373d;--bg-selection: #264f78;--text-primary: #d4d4d4;--text-secondary: #858585;--text-muted: #5a5a5a;--border-color: #3c3c3c;--border-subtle: #2d2d2d;--border-focus: #007acc;--accent-primary: #0e639c;--accent-hover: #1177bb;--accent-blue: #569cd6;--accent-green: #4ec9b0;--accent-yellow: #dcdcaa;--accent-orange: #ce9178;--accent-purple: #c586c0;--accent-red: #f14c4c;--scrollbar-bg: #1e1e1e;--scrollbar-thumb: #424242;--scrollbar-thumb-hover: #4f4f4f;--list-active-background: #37373d;--list-active-hover-background: #3d3d42;--font-ui: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Cascadia Code", "Fira Code", Consolas, monospace;--radius-sm: 3px;--radius-md: 5px;--radius-lg: 8px;--radius-xl: 12px;--radius-pill: 9999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .2);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .24), 0 1px 2px rgba(0, 0, 0, .16);--shadow-md: 0 4px 12px rgba(0, 0, 0, .28), 0 1px 4px rgba(0, 0, 0, .18);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .32), 0 2px 8px rgba(0, 0, 0, .2);--shadow-xl: 0 12px 40px rgba(0, 0, 0, .36), 0 4px 12px rgba(0, 0, 0, .22);--glass-bg: rgba(30, 30, 30, .85);--glass-border: rgba(255, 255, 255, .06);--glass-blur: 12px;--transition-fast: .1s cubic-bezier(.4, 0, .2, 1);--transition-normal: .18s cubic-bezier(.4, 0, .2, 1);--transition-smooth: .25s cubic-bezier(.4, 0, .2, 1);--breakpoint-mobile: 480px;--breakpoint-tablet: 768px;--breakpoint-desktop: 1024px;--touch-target-min: 44px;--touch-target-comfortable: 48px;--mobile-nav-height: 56px;--mobile-header-height: 48px}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%;overflow:hidden}body{font-family:var(--font-ui);font-size:13px;line-height:1.4;color:var(--text-primary);background-color:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:14px;height:14px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border:3px solid transparent;background-clip:padding-box;border-radius:7px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover);border:3px solid transparent;background-clip:padding-box}::-webkit-scrollbar-corner{background:transparent}::selection{background-color:var(--bg-selection)}:focus-visible{outline:1.5px solid var(--border-focus);outline-offset:-1px;border-radius:var(--radius-sm)}button,[role=button],a,input,select,textarea{transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast)}:root{--sash-size: 8px !important;--sash-hover-size: 1px !important;--separator-border: var(--border-color) !important}[class*=sash-module_sash]{background-color:transparent!important}[class*=sash-module_sash]:before{background-color:var(--border-color)!important}[class*=sash-module_sash]:hover:before,[class*=sash-module_sash][class*=hover]:before,[class*=sash-module_sash][class*=active]:before{background-color:var(--border-focus)!important}@media(max-width:1024px){::-webkit-scrollbar{width:8px;height:8px}}@media(max-width:768px){input,select,textarea{font-size:16px}button:not(.btn-icon),[role=button]{min-height:var(--touch-target-min)}input[type=text],input[type=number],input[type=email],input[type=password],input[type=datetime-local],select,textarea{min-height:var(--touch-target-min);padding:12px}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-thumb{border:none;border-radius:2px}}@media(max-width:480px){body{font-size:14px}}
