@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&family=Inter:wght@400;500;600&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]{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{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}}.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%}.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{margin:0}.metadata-schema-color-control{display:flex;align-items:center;gap:8px}.metadata-schema-color-control input[type=color]{width:44px;height:30px;border:1px solid var(--border-color, #404040);border-radius:4px;background:transparent;padding:2px}.metadata-schema-color-control input[type=text]{flex:1}.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-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-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}.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,.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,.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,.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)}.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 .form-group{display:flex;flex-direction:column;gap:.5rem}.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-hint{font-size:11px;color:var(--text-muted);margin-top:-2px}.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:48px;height:32px;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]{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{outline:none;border-color:var(--border-focus)}.toggle-switch-form .form-group input[type=text]::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]{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]{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{outline:none;border-color:var(--border-focus)}.button-form .form-group input[type=text]::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]{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}}.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]{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{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 2px #007acc26}.timer-form .form-group input[type=text]::placeholder{color:var(--text-muted)}.timer-form .form-hint{font-size:11px;color:var(--text-muted);margin-top:-2px}.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]{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}}.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__meta{color:var(--text-secondary);font-size:.85rem}.file-card__actions{display:flex;gap:6px;flex-wrap:wrap}.file-picker-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:1500;display:flex;align-items:center;justify-content:center;padding:16px}.file-picker-dialog{width:min(1200px,96vw);height:min(90vh,860px);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:10px;box-shadow:0 16px 40px #00000059;display:flex;flex-direction:column;overflow:hidden}.file-picker-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid var(--border-color);background:var(--bg-secondary)}.file-picker-header h3{margin:0;font-size:1rem;color:var(--text-primary)}.file-picker-close{border:1px solid var(--border-color);border-radius:6px;background:var(--bg-tertiary);color:var(--text-primary);width:28px;height:28px;cursor:pointer}.file-picker-close:hover{border-color:var(--accent-primary)}.file-picker-body{flex:1;min-height:0}.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 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{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 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]{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{outline:none;border-color:var(--border-focus)}.script-element-form .form-group input[type=text]::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]{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-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}}.digital-out-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:doFadeIn .15s ease}@keyframes doFadeIn{0%{opacity:0}to{opacity:1}}.digital-out-modal{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 8px 32px #0006;width:90%;max-width:420px;max-height:90vh;display:flex;flex-direction:column;animation:doSlideIn .15s ease}@keyframes doSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.digital-out-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}.digital-out-modal-title{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-size:1rem;font-weight:500}.digital-out-modal-icon{width:18px;height:18px;color:var(--accent-orange)}.digital-out-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)}.digital-out-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.digital-out-modal-close svg{width:16px;height:16px}.digital-out-modal-content{padding:1.25rem;overflow-y:auto}.digital-out-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:var(--text-secondary)}.digital-out-loading .loading-spinner{width:24px;height:24px;border:2px solid var(--bg-tertiary);border-top-color:var(--accent-primary);border-radius:50%;animation:doSpin .8s linear infinite;margin-bottom:.75rem}@keyframes doSpin{to{transform:rotate(360deg)}}.digital-out-form{display:flex;flex-direction:column;gap:1rem}.digital-out-form .form-group{display:flex;flex-direction:column;gap:.5rem}.digital-out-form .form-group>label{font-size:12px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.digital-out-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)}.digital-out-form .form-group input[type=text]:focus{outline:none;border-color:var(--border-focus)}.digital-out-form .form-group input[type=text]::placeholder{color:var(--text-muted)}.digital-out-form .form-hint{font-size:11px;color:var(--text-muted);margin-top:-2px}.digital-out-form .form-group-info{gap:.75rem}.digital-out-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)}.digital-out-form .port-info-item{display:flex;align-items:center;gap:8px;font-size:13px}.digital-out-form .port-info-label{color:var(--text-secondary)}.digital-out-form .port-info-value{color:var(--text-primary);font-family:var(--font-mono)}.digital-out-form .port-info-value.yes{color:var(--accent-orange)}.digital-out-form .port-info-value.no{color:var(--text-muted)}.digital-out-form .form-group-checkbox{gap:0}.digital-out-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}.digital-out-form .form-group-checkbox>label:hover{background:var(--bg-hover)}.digital-out-form .form-group-checkbox input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--accent-primary);cursor:pointer}.digital-out-form .checkbox-label{font-size:13px;font-weight:500;color:var(--text-primary);text-transform:none;letter-spacing:normal}.digital-out-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}.digital-out-form .form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.digital-out-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)}.digital-out-form .btn-secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.digital-out-form .btn-secondary:hover{background:var(--bg-hover);border-color:var(--text-muted)}.digital-out-form .btn-primary{background:var(--accent-primary);border:1px solid var(--accent-primary);color:#fff}.digital-out-form .btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.digital-out-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.digital-out-modal-overlay{align-items:stretch;justify-content:stretch}.digital-out-modal{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0;border:none;animation:doMobileSlideUp .25s ease}@keyframes doMobileSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.digital-out-modal-header{border-radius:0;padding:12px 16px;min-height:var(--mobile-header-height)}.digital-out-modal-title{font-size:16px}.digital-out-modal-close{width:40px;height:40px}.digital-out-modal-close svg{width:20px;height:20px}.digital-out-modal-content{flex:1;padding:16px;overflow-y:auto;-webkit-overflow-scrolling:touch}.digital-out-form .form-group input[type=text]{min-height:var(--touch-target-min);padding:12px;font-size:16px}.digital-out-form .form-group>label{font-size:13px;margin-bottom:8px}.digital-out-form .form-group-checkbox>label{min-height:var(--touch-target-min);padding:12px 16px}.digital-out-form .form-group-checkbox input[type=checkbox]{width:20px;height:20px}.digital-out-form .btn{min-height:var(--touch-target-min);padding:12px 20px;font-size:14px}.digital-out-form .form-actions{padding-top:16px;gap:12px}}.digital-in-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:diFadeIn .15s ease}@keyframes diFadeIn{0%{opacity:0}to{opacity:1}}.digital-in-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:diSlideIn .15s ease}@keyframes diSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.digital-in-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}.digital-in-modal-title{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-size:1rem;font-weight:500}.digital-in-modal-icon{width:18px;height:18px;color:var(--accent-blue)}.digital-in-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)}.digital-in-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.digital-in-modal-close svg{width:16px;height:16px}.digital-in-modal-content{padding:1.25rem;overflow-y:auto}.digital-in-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:var(--text-secondary)}.digital-in-loading .loading-spinner{width:24px;height:24px;border:2px solid var(--bg-tertiary);border-top-color:var(--accent-primary);border-radius:50%;animation:diSpin .8s linear infinite;margin-bottom:.75rem}@keyframes diSpin{to{transform:rotate(360deg)}}.digital-in-form{display:flex;flex-direction:column;gap:1rem}.digital-in-form .form-group{display:flex;flex-direction:column;gap:.5rem}.digital-in-form .form-group>label{font-size:12px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.digital-in-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)}.digital-in-form .form-group input[type=text]:focus{outline:none;border-color:var(--border-focus)}.digital-in-form .form-group input[type=text]::placeholder{color:var(--text-muted)}.digital-in-form .form-hint{font-size:11px;color:var(--text-muted);margin-top:-2px}.digital-in-form .form-group-info{gap:.75rem}.digital-in-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)}.digital-in-form .port-info-item{display:flex;align-items:center;gap:8px;font-size:13px}.digital-in-form .port-info-label{color:var(--text-secondary)}.digital-in-form .port-info-value{color:var(--text-primary);font-family:var(--font-mono)}.digital-in-form .port-info-value.yes{color:var(--accent-blue)}.digital-in-form .port-info-value.no{color:var(--text-muted)}.digital-in-form .port-info-value.on{color:var(--accent-green)}.digital-in-form .port-info-value.off{color:var(--text-muted)}.digital-in-form .form-group-checkbox{gap:0}.digital-in-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}.digital-in-form .form-group-checkbox>label:hover{background:var(--bg-hover)}.digital-in-form .form-group-checkbox input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--accent-primary);cursor:pointer}.digital-in-form .checkbox-label{font-size:13px;font-weight:500;color:var(--text-primary);text-transform:none;letter-spacing:normal}.digital-in-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}.digital-in-form .form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.digital-in-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)}.digital-in-form .btn-secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.digital-in-form .btn-secondary:hover{background:var(--bg-hover);border-color:var(--text-muted)}.digital-in-form .btn-primary{background:var(--accent-primary);border:1px solid var(--accent-primary);color:#fff}.digital-in-form .btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.digital-in-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.digital-in-modal-overlay{align-items:stretch;justify-content:stretch}.digital-in-modal{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0;border:none;animation:diMobileSlideUp .25s ease}@keyframes diMobileSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.digital-in-modal-header{border-radius:0;padding:12px 16px;min-height:var(--mobile-header-height)}.digital-in-modal-title{font-size:16px}.digital-in-modal-close{width:40px;height:40px}.digital-in-modal-close svg{width:20px;height:20px}.digital-in-modal-content{flex:1;padding:16px;overflow-y:auto;-webkit-overflow-scrolling:touch}.digital-in-form .form-group input[type=text]{min-height:var(--touch-target-min);padding:12px;font-size:16px}.digital-in-form .form-group>label{font-size:13px;margin-bottom:8px}.digital-in-form .form-group-checkbox>label{min-height:var(--touch-target-min);padding:12px 16px}.digital-in-form .form-group-checkbox input[type=checkbox]{width:20px;height:20px}.digital-in-form .btn{min-height:var(--touch-target-min);padding:12px 20px;font-size:14px}.digital-in-form .form-actions{padding-top:16px;gap:12px}}.duty-cycle-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:dcFadeIn .15s ease}@keyframes dcFadeIn{0%{opacity:0}to{opacity:1}}.duty-cycle-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:dcSlideIn .15s ease}@keyframes dcSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.duty-cycle-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}.duty-cycle-modal-title{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-size:1rem;font-weight:500}.duty-cycle-modal-icon{width:18px;height:18px;color:var(--accent-purple)}.duty-cycle-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)}.duty-cycle-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.duty-cycle-modal-close svg{width:16px;height:16px}.duty-cycle-modal-content{padding:1.25rem;overflow-y:auto}.duty-cycle-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:var(--text-secondary)}.duty-cycle-loading .loading-spinner{width:24px;height:24px;border:2px solid var(--bg-tertiary);border-top-color:var(--accent-primary);border-radius:50%;animation:dcSpin .8s linear infinite;margin-bottom:.75rem}@keyframes dcSpin{to{transform:rotate(360deg)}}.duty-cycle-form{display:flex;flex-direction:column;gap:1rem}.duty-cycle-form .form-group{display:flex;flex-direction:column;gap:.5rem}.duty-cycle-form .form-group>label{font-size:12px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.duty-cycle-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)}.duty-cycle-form .form-group input[type=text]:focus{outline:none;border-color:var(--border-focus)}.duty-cycle-form .form-group input[type=text]::placeholder{color:var(--text-muted)}.duty-cycle-form .form-hint{font-size:11px;color:var(--text-muted);margin-top:-2px}.duty-cycle-form .form-group-info{gap:.75rem}.duty-cycle-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)}.duty-cycle-form .port-info-item{display:flex;align-items:center;gap:8px;font-size:13px}.duty-cycle-form .port-info-label{color:var(--text-secondary)}.duty-cycle-form .port-info-value{color:var(--text-primary);font-family:var(--font-mono)}.duty-cycle-form .port-info-value.highlight{color:var(--accent-purple);font-weight:600}.duty-cycle-form .port-info-value.on{color:var(--accent-purple)}.duty-cycle-form .port-info-value.off{color:var(--text-muted)}.duty-cycle-form .form-group-checkbox{gap:0}.duty-cycle-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}.duty-cycle-form .form-group-checkbox>label:hover{background:var(--bg-hover)}.duty-cycle-form .form-group-checkbox input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--accent-primary);cursor:pointer}.duty-cycle-form .checkbox-label{font-size:13px;font-weight:500;color:var(--text-primary);text-transform:none;letter-spacing:normal}.duty-cycle-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}.duty-cycle-form .form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.duty-cycle-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}.duty-cycle-form .btn-secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.duty-cycle-form .btn-secondary:hover{background:var(--bg-hover);border-color:var(--text-muted)}.duty-cycle-form .btn-primary{background:var(--accent-primary);border:1px solid var(--accent-primary);color:#fff}.duty-cycle-form .btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.duty-cycle-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.duty-cycle-modal-overlay{align-items:stretch;justify-content:stretch}.duty-cycle-modal{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0;border:none;animation:dcMobileSlideUp .25s ease}@keyframes dcMobileSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.duty-cycle-modal-header{border-radius:0;padding:12px 16px;min-height:var(--mobile-header-height)}.duty-cycle-modal-title{font-size:16px}.duty-cycle-modal-close{width:40px;height:40px}.duty-cycle-modal-close svg{width:20px;height:20px}.duty-cycle-modal-content{flex:1;padding:16px;overflow-y:auto;-webkit-overflow-scrolling:touch}.duty-cycle-form .form-group input[type=text]{min-height:var(--touch-target-min);padding:12px;font-size:16px}.duty-cycle-form .form-group>label{font-size:13px;margin-bottom:8px}.duty-cycle-form .form-group-checkbox>label{min-height:var(--touch-target-min);padding:12px 16px}.duty-cycle-form .form-group-checkbox input[type=checkbox]{width:20px;height:20px}.duty-cycle-form .btn{min-height:var(--touch-target-min);padding:12px 20px;font-size:14px}.duty-cycle-form .form-actions{padding-top:16px;gap:12px}}.pwm-out-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:pwmFadeIn .15s ease}@keyframes pwmFadeIn{0%{opacity:0}to{opacity:1}}.pwm-out-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:pwmSlideIn .15s ease}@keyframes pwmSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.pwm-out-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}.pwm-out-modal-title{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-size:1rem;font-weight:500}.pwm-out-modal-icon{width:18px;height:18px;color:var(--accent-yellow)}.pwm-out-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)}.pwm-out-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.pwm-out-modal-close svg{width:16px;height:16px}.pwm-out-modal-content{padding:1.25rem;overflow-y:auto}.pwm-out-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:var(--text-secondary)}.pwm-out-loading .loading-spinner{width:24px;height:24px;border:2px solid var(--bg-tertiary);border-top-color:var(--accent-primary);border-radius:50%;animation:pwmSpin .8s linear infinite;margin-bottom:.75rem}@keyframes pwmSpin{to{transform:rotate(360deg)}}.pwm-out-form{display:flex;flex-direction:column;gap:1rem}.pwm-out-form .form-group{display:flex;flex-direction:column;gap:.5rem}.pwm-out-form .form-group>label{font-size:12px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.pwm-out-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)}.pwm-out-form .form-group input[type=text]:focus{outline:none;border-color:var(--border-focus)}.pwm-out-form .form-group input[type=text]::placeholder{color:var(--text-muted)}.pwm-out-form .form-hint{font-size:11px;color:var(--text-muted);margin-top:-2px}.pwm-out-form .form-group-info{gap:.75rem}.pwm-out-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)}.pwm-out-form .port-info-item{display:flex;align-items:center;gap:8px;font-size:13px}.pwm-out-form .port-info-label{color:var(--text-secondary)}.pwm-out-form .port-info-value{color:var(--text-primary);font-family:var(--font-mono)}.pwm-out-form .port-info-value.highlight{color:var(--accent-yellow);font-weight:600}.pwm-out-form .form-group-checkbox{gap:0}.pwm-out-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}.pwm-out-form .form-group-checkbox>label:hover{background:var(--bg-hover)}.pwm-out-form .form-group-checkbox input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--accent-primary);cursor:pointer}.pwm-out-form .checkbox-label{font-size:13px;font-weight:500;color:var(--text-primary);text-transform:none;letter-spacing:normal}.pwm-out-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}.pwm-out-form .form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.pwm-out-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)}.pwm-out-form .btn-secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.pwm-out-form .btn-secondary:hover{background:var(--bg-hover);border-color:var(--text-muted)}.pwm-out-form .btn-primary{background:var(--accent-primary);border:1px solid var(--accent-primary);color:#fff}.pwm-out-form .btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.pwm-out-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.pwm-out-modal-overlay{align-items:stretch;justify-content:stretch}.pwm-out-modal{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0;border:none;animation:pwmMobileSlideUp .25s ease}@keyframes pwmMobileSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.pwm-out-modal-header{border-radius:0;padding:12px 16px;min-height:var(--mobile-header-height)}.pwm-out-modal-title{font-size:16px}.pwm-out-modal-close{width:40px;height:40px}.pwm-out-modal-close svg{width:20px;height:20px}.pwm-out-modal-content{flex:1;padding:16px;overflow-y:auto;-webkit-overflow-scrolling:touch}.pwm-out-form .form-group input[type=text]{min-height:var(--touch-target-min);padding:12px;font-size:16px}.pwm-out-form .form-group>label{font-size:13px;margin-bottom:8px}.pwm-out-form .form-group-checkbox>label{min-height:var(--touch-target-min);padding:12px 16px}.pwm-out-form .form-group-checkbox input[type=checkbox]{width:20px;height:20px}.pwm-out-form .btn{min-height:var(--touch-target-min);padding:12px 20px;font-size:14px}.pwm-out-form .form-actions{padding-top:16px;gap:12px}}.analog-in-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:aiFadeIn .15s ease}@keyframes aiFadeIn{0%{opacity:0}to{opacity:1}}.analog-in-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:aiSlideIn .15s ease}@keyframes aiSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.analog-in-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}.analog-in-modal-title{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-size:1rem;font-weight:500}.analog-in-modal-icon{width:18px;height:18px;color:var(--accent-blue)}.analog-in-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)}.analog-in-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.analog-in-modal-close svg{width:16px;height:16px}.analog-in-modal-content{padding:1.25rem;overflow-y:auto}.analog-in-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:var(--text-secondary)}.analog-in-loading .loading-spinner{width:24px;height:24px;border:2px solid var(--bg-tertiary);border-top-color:var(--accent-primary);border-radius:50%;animation:aiSpin .8s linear infinite;margin-bottom:.75rem}@keyframes aiSpin{to{transform:rotate(360deg)}}.analog-in-form{display:flex;flex-direction:column;gap:1rem}.analog-in-form .form-group{display:flex;flex-direction:column;gap:.5rem}.analog-in-form .form-group>label{font-size:12px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.analog-in-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)}.analog-in-form .form-group input[type=text]:focus{outline:none;border-color:var(--border-focus)}.analog-in-form .form-group input[type=text]::placeholder{color:var(--text-muted)}.analog-in-form .form-hint{font-size:11px;color:var(--text-muted);margin-top:-2px}.analog-in-form .form-group-info{gap:.75rem}.analog-in-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)}.analog-in-form .port-info-item{display:flex;align-items:center;gap:8px;font-size:13px}.analog-in-form .port-info-label{color:var(--text-secondary)}.analog-in-form .port-info-value{color:var(--text-primary);font-family:var(--font-mono)}.analog-in-form .port-info-value.highlight{color:var(--accent-blue);font-weight:600}.analog-in-form .form-group-checkbox{gap:0}.analog-in-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}.analog-in-form .form-group-checkbox>label:hover{background:var(--bg-hover)}.analog-in-form .form-group-checkbox input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--accent-primary);cursor:pointer}.analog-in-form .checkbox-label{font-size:13px;font-weight:500;color:var(--text-primary);text-transform:none;letter-spacing:normal}.analog-in-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}.analog-in-form .form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.analog-in-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)}.analog-in-form .btn-secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.analog-in-form .btn-secondary:hover{background:var(--bg-hover);border-color:var(--text-muted)}.analog-in-form .btn-primary{background:var(--accent-primary);border:1px solid var(--accent-primary);color:#fff}.analog-in-form .btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.analog-in-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.analog-in-modal-overlay{align-items:stretch;justify-content:stretch}.analog-in-modal{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0;border:none;animation:aiMobileSlideUp .25s ease}@keyframes aiMobileSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.analog-in-modal-header{border-radius:0;padding:12px 16px;min-height:var(--mobile-header-height)}.analog-in-modal-title{font-size:16px}.analog-in-modal-close{width:40px;height:40px}.analog-in-modal-close svg{width:20px;height:20px}.analog-in-modal-content{flex:1;padding:16px;overflow-y:auto;-webkit-overflow-scrolling:touch}.analog-in-form .form-group input[type=text]{min-height:var(--touch-target-min);padding:12px;font-size:16px}.analog-in-form .form-group>label{font-size:13px;margin-bottom:8px}.analog-in-form .form-group-checkbox>label{min-height:var(--touch-target-min);padding:12px 16px}.analog-in-form .form-group-checkbox input[type=checkbox]{width:20px;height:20px}.analog-in-form .btn{min-height:var(--touch-target-min);padding:12px 20px;font-size:14px}.analog-in-form .form-actions{padding-top:16px;gap:12px}}.counter-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:counterFadeIn .15s ease}@keyframes counterFadeIn{0%{opacity:0}to{opacity:1}}.counter-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:counterSlideIn .15s ease}@keyframes counterSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.counter-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}.counter-modal-title{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-size:1rem;font-weight:500}.counter-modal-icon{width:18px;height:18px;color:var(--accent-green)}.counter-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)}.counter-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.counter-modal-close svg{width:16px;height:16px}.counter-modal-content{padding:1.25rem;overflow-y:auto}.counter-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:var(--text-secondary)}.counter-loading .loading-spinner{width:24px;height:24px;border:2px solid var(--bg-tertiary);border-top-color:var(--accent-primary);border-radius:50%;animation:counterSpin .8s linear infinite;margin-bottom:.75rem}@keyframes counterSpin{to{transform:rotate(360deg)}}.counter-form{display:flex;flex-direction:column;gap:1rem}.counter-form .form-group{display:flex;flex-direction:column;gap:.5rem}.counter-form .form-group>label{font-size:12px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.counter-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)}.counter-form .form-group input[type=text]:focus{outline:none;border-color:var(--border-focus)}.counter-form .form-group input[type=text]::placeholder{color:var(--text-muted)}.counter-form .form-hint{font-size:11px;color:var(--text-muted);margin-top:-2px}.counter-form .form-group-info{gap:.75rem}.counter-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)}.counter-form .port-info-item{display:flex;align-items:center;gap:8px;font-size:13px}.counter-form .port-info-label{color:var(--text-secondary)}.counter-form .port-info-value{color:var(--text-primary);font-family:var(--font-mono)}.counter-form .port-info-value.highlight{color:var(--accent-green);font-weight:600}.counter-form .form-group-checkbox{gap:0}.counter-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}.counter-form .form-group-checkbox>label:hover{background:var(--bg-hover)}.counter-form .form-group-checkbox input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--accent-primary);cursor:pointer}.counter-form .checkbox-label{font-size:13px;font-weight:500;color:var(--text-primary);text-transform:none;letter-spacing:normal}.counter-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}.counter-form .form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.counter-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)}.counter-form .btn-secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.counter-form .btn-secondary:hover{background:var(--bg-hover);border-color:var(--text-muted)}.counter-form .btn-primary{background:var(--accent-primary);border:1px solid var(--accent-primary);color:#fff}.counter-form .btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.counter-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.counter-modal-overlay{align-items:stretch;justify-content:stretch}.counter-modal{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0;border:none;animation:counterMobileSlideUp .25s ease}@keyframes counterMobileSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.counter-modal-header{border-radius:0;padding:12px 16px;min-height:var(--mobile-header-height)}.counter-modal-title{font-size:16px}.counter-modal-close{width:40px;height:40px}.counter-modal-close svg{width:20px;height:20px}.counter-modal-content{flex:1;padding:16px;overflow-y:auto;-webkit-overflow-scrolling:touch}.counter-form .form-group input[type=text]{min-height:var(--touch-target-min);padding:12px;font-size:16px}.counter-form .form-group>label{font-size:13px;margin-bottom:8px}.counter-form .form-group-checkbox>label{min-height:var(--touch-target-min);padding:12px 16px}.counter-form .form-group-checkbox input[type=checkbox]{width:20px;height:20px}.counter-form .btn{min-height:var(--touch-target-min);padding:12px 20px;font-size:14px}.counter-form .form-actions{padding-top:16px;gap:12px}}.owtemp-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:owtempFadeIn .15s ease}@keyframes owtempFadeIn{0%{opacity:0}to{opacity:1}}.owtemp-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:owtempSlideIn .15s ease}@keyframes owtempSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.owtemp-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}.owtemp-modal-title{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-size:1rem;font-weight:500}.owtemp-modal-icon{width:18px;height:18px;color:var(--accent-red)}.owtemp-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)}.owtemp-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.owtemp-modal-close svg{width:16px;height:16px}.owtemp-modal-content{padding:1.25rem;overflow-y:auto}.owtemp-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:var(--text-secondary)}.owtemp-loading .loading-spinner{width:24px;height:24px;border:2px solid var(--bg-tertiary);border-top-color:var(--accent-primary);border-radius:50%;animation:owtempSpin .8s linear infinite;margin-bottom:.75rem}@keyframes owtempSpin{to{transform:rotate(360deg)}}.owtemp-form{display:flex;flex-direction:column;gap:1rem}.owtemp-form .form-group{display:flex;flex-direction:column;gap:.5rem}.owtemp-form .form-group>label{font-size:12px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.owtemp-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)}.owtemp-form .form-group input[type=text]:focus{outline:none;border-color:var(--border-focus)}.owtemp-form .form-group input[type=text]::placeholder{color:var(--text-muted)}.owtemp-form .form-hint{font-size:11px;color:var(--text-muted);margin-top:-2px}.owtemp-form .form-group-info{gap:.75rem}.owtemp-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)}.owtemp-form .port-info-item{display:flex;align-items:center;gap:8px;font-size:13px}.owtemp-form .port-info-label{color:var(--text-secondary)}.owtemp-form .port-info-value{color:var(--text-primary);font-family:var(--font-mono)}.owtemp-form .port-info-value.highlight{color:var(--accent-red);font-weight:600}.owtemp-form .form-group-checkbox{gap:0}.owtemp-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}.owtemp-form .form-group-checkbox>label:hover{background:var(--bg-hover)}.owtemp-form .form-group-checkbox input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--accent-primary);cursor:pointer}.owtemp-form .checkbox-label{font-size:13px;font-weight:500;color:var(--text-primary);text-transform:none;letter-spacing:normal}.owtemp-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}.owtemp-form .form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.owtemp-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)}.owtemp-form .btn-secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.owtemp-form .btn-secondary:hover{background:var(--bg-hover);border-color:var(--text-muted)}.owtemp-form .btn-primary{background:var(--accent-primary);border:1px solid var(--accent-primary);color:#fff}.owtemp-form .btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.owtemp-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.owtemp-modal-overlay{align-items:stretch;justify-content:stretch}.owtemp-modal{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0;border:none;animation:owtempMobileSlideUp .25s ease}@keyframes owtempMobileSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.owtemp-modal-header{border-radius:0;padding:12px 16px;min-height:var(--mobile-header-height)}.owtemp-modal-title{font-size:16px}.owtemp-modal-close{width:40px;height:40px}.owtemp-modal-close svg{width:20px;height:20px}.owtemp-modal-content{flex:1;padding:16px;overflow-y:auto;-webkit-overflow-scrolling:touch}.owtemp-form .form-group input[type=text]{min-height:var(--touch-target-min);padding:12px;font-size:16px}.owtemp-form .form-group>label{font-size:13px;margin-bottom:8px}.owtemp-form .form-group-checkbox>label{min-height:var(--touch-target-min);padding:12px 16px}.owtemp-form .form-group-checkbox input[type=checkbox]{width:20px;height:20px}.owtemp-form .btn{min-height:var(--touch-target-min);padding:12px 20px;font-size:14px}.owtemp-form .form-actions{padding-top:16px;gap:12px}}.spi-sensor-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:spiFadeIn .15s ease}@keyframes spiFadeIn{0%{opacity:0}to{opacity:1}}.spi-sensor-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:spiSlideIn .15s ease}@keyframes spiSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.spi-sensor-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}.spi-sensor-modal-title{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-size:1rem;font-weight:500}.spi-sensor-modal-icon{width:18px;height:18px;color:var(--accent-purple)}.spi-sensor-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)}.spi-sensor-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.spi-sensor-modal-close svg{width:16px;height:16px}.spi-sensor-modal-content{padding:1.25rem;overflow-y:auto}.spi-sensor-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:var(--text-secondary)}.spi-sensor-loading .loading-spinner{width:24px;height:24px;border:2px solid var(--bg-tertiary);border-top-color:var(--accent-primary);border-radius:50%;animation:spiSpin .8s linear infinite;margin-bottom:.75rem}@keyframes spiSpin{to{transform:rotate(360deg)}}.spi-sensor-form{display:flex;flex-direction:column;gap:1rem}.spi-sensor-form .form-group{display:flex;flex-direction:column;gap:.5rem}.spi-sensor-form .form-group>label{font-size:12px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.spi-sensor-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)}.spi-sensor-form .form-group input[type=text]:focus{outline:none;border-color:var(--border-focus)}.spi-sensor-form .form-group input[type=text]::placeholder{color:var(--text-muted)}.spi-sensor-form .form-hint{font-size:11px;color:var(--text-muted);margin-top:-2px}.spi-sensor-form .form-group-info{gap:.75rem}.spi-sensor-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)}.spi-sensor-form .port-info-item{display:flex;align-items:center;gap:8px;font-size:13px}.spi-sensor-form .port-info-label{color:var(--text-secondary)}.spi-sensor-form .port-info-value{color:var(--text-primary);font-family:var(--font-mono)}.spi-sensor-form .port-info-value.highlight{color:var(--accent-purple);font-weight:600}.spi-sensor-form .form-group-checkbox{gap:0}.spi-sensor-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}.spi-sensor-form .form-group-checkbox>label:hover{background:var(--bg-hover)}.spi-sensor-form .form-group-checkbox input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--accent-primary);cursor:pointer}.spi-sensor-form .checkbox-label{font-size:13px;font-weight:500;color:var(--text-primary);text-transform:none;letter-spacing:normal}.spi-sensor-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}.spi-sensor-form .form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.spi-sensor-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)}.spi-sensor-form .btn-secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.spi-sensor-form .btn-secondary:hover{background:var(--bg-hover);border-color:var(--text-muted)}.spi-sensor-form .btn-primary{background:var(--accent-primary);border:1px solid var(--accent-primary);color:#fff}.spi-sensor-form .btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.spi-sensor-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.spi-sensor-modal-overlay{align-items:stretch;justify-content:stretch}.spi-sensor-modal{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0;border:none;animation:spiMobileSlideUp .25s ease}@keyframes spiMobileSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.spi-sensor-modal-header{border-radius:0;padding:12px 16px;min-height:var(--mobile-header-height)}.spi-sensor-modal-title{font-size:16px}.spi-sensor-modal-close{width:40px;height:40px}.spi-sensor-modal-close svg{width:20px;height:20px}.spi-sensor-modal-content{flex:1;padding:16px;overflow-y:auto;-webkit-overflow-scrolling:touch}.spi-sensor-form .form-group input[type=text]{min-height:var(--touch-target-min);padding:12px;font-size:16px}.spi-sensor-form .form-group>label{font-size:13px;margin-bottom:8px}.spi-sensor-form .form-group-checkbox>label{min-height:var(--touch-target-min);padding:12px 16px}.spi-sensor-form .form-group-checkbox input[type=checkbox]{width:20px;height:20px}.spi-sensor-form .btn{min-height:var(--touch-target-min);padding:12px 20px;font-size:14px}.spi-sensor-form .form-actions{padding-top:16px;gap:12px}}.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}}.hysteresis-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:hystFadeIn .15s ease}@keyframes hystFadeIn{0%{opacity:0}to{opacity:1}}.hysteresis-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:hystSlideIn .15s ease}@keyframes hystSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.hysteresis-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}.hysteresis-modal-title{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-size:1rem;font-weight:500}.hysteresis-modal-icon{width:18px;height:18px;color:var(--accent-green)}.hysteresis-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)}.hysteresis-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.hysteresis-modal-close svg{width:16px;height:16px}.hysteresis-modal-content{padding:1.25rem;overflow-y:auto}.hysteresis-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:var(--text-secondary)}.hysteresis-loading .loading-spinner{width:24px;height:24px;border:2px solid var(--bg-tertiary);border-top-color:var(--accent-primary);border-radius:50%;animation:hystSpin .8s linear infinite;margin-bottom:.75rem}@keyframes hystSpin{to{transform:rotate(360deg)}}.hysteresis-form{display:flex;flex-direction:column;gap:1rem}.hysteresis-form .form-group{display:flex;flex-direction:column;gap:.5rem}.hysteresis-form .form-group>label{font-size:12px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.hysteresis-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)}.hysteresis-form .form-group input[type=text]:focus{outline:none;border-color:var(--border-focus)}.hysteresis-form .form-group input[type=text]::placeholder{color:var(--text-muted)}.hysteresis-form .form-hint{font-size:11px;color:var(--text-muted);margin-top:-2px}.hysteresis-form .form-group-info{gap:.75rem}.hysteresis-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)}.hysteresis-form .port-info-item{display:flex;align-items:center;gap:8px;font-size:13px}.hysteresis-form .port-info-label{color:var(--text-secondary)}.hysteresis-form .port-info-value{color:var(--text-primary);font-family:var(--font-mono)}.hysteresis-form .port-info-value.highlight{color:var(--accent-green);font-weight:600}.hysteresis-form .port-info-value.on{color:var(--accent-green)}.hysteresis-form .port-info-value.off{color:var(--text-muted)}.hysteresis-form .form-group-checkbox{gap:0}.hysteresis-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}.hysteresis-form .form-group-checkbox>label:hover{background:var(--bg-hover)}.hysteresis-form .form-group-checkbox input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--accent-primary);cursor:pointer}.hysteresis-form .checkbox-label{font-size:13px;font-weight:500;color:var(--text-primary);text-transform:none;letter-spacing:normal}.hysteresis-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}.hysteresis-form .form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.hysteresis-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)}.hysteresis-form .btn-secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.hysteresis-form .btn-secondary:hover{background:var(--bg-hover);border-color:var(--text-muted)}.hysteresis-form .btn-primary{background:var(--accent-primary);border:1px solid var(--accent-primary);color:#fff}.hysteresis-form .btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.hysteresis-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.hysteresis-modal-overlay{align-items:stretch;justify-content:stretch}.hysteresis-modal{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0;border:none;animation:hystMobileSlideUp .25s ease}@keyframes hystMobileSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.hysteresis-modal-header{border-radius:0;padding:12px 16px;min-height:var(--mobile-header-height)}.hysteresis-modal-title{font-size:16px}.hysteresis-modal-close{width:40px;height:40px}.hysteresis-modal-close svg{width:20px;height:20px}.hysteresis-modal-content{flex:1;padding:16px;overflow-y:auto;-webkit-overflow-scrolling:touch}.hysteresis-form .form-group input[type=text]{min-height:var(--touch-target-min);padding:12px;font-size:16px}.hysteresis-form .form-group>label{font-size:13px;margin-bottom:8px}.hysteresis-form .form-group-checkbox>label{min-height:var(--touch-target-min);padding:12px 16px}.hysteresis-form .form-group-checkbox input[type=checkbox]{width:20px;height:20px}.hysteresis-form .btn{min-height:var(--touch-target-min);padding:12px 20px;font-size:14px}.hysteresis-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]{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{outline:none;border-color:var(--border-focus)}.pid-form .form-group input[type=text]::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]{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}}.deadband-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:dbFadeIn .15s ease}@keyframes dbFadeIn{0%{opacity:0}to{opacity:1}}.deadband-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:dbSlideIn .15s ease}@keyframes dbSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.deadband-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}.deadband-modal-title{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-size:1rem;font-weight:500}.deadband-modal-icon{width:18px;height:18px;color:var(--accent-purple)}.deadband-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)}.deadband-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.deadband-modal-close svg{width:16px;height:16px}.deadband-modal-content{padding:1.25rem;overflow-y:auto}.deadband-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:var(--text-secondary)}.deadband-loading .loading-spinner{width:24px;height:24px;border:2px solid var(--bg-tertiary);border-top-color:var(--accent-primary);border-radius:50%;animation:dbSpin .8s linear infinite;margin-bottom:.75rem}@keyframes dbSpin{to{transform:rotate(360deg)}}.deadband-form{display:flex;flex-direction:column;gap:1rem}.deadband-form .form-group{display:flex;flex-direction:column;gap:.5rem}.deadband-form .form-group>label{font-size:12px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.deadband-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)}.deadband-form .form-group input[type=text]:focus{outline:none;border-color:var(--border-focus)}.deadband-form .form-group input[type=text]::placeholder{color:var(--text-muted)}.deadband-form .form-hint{font-size:11px;color:var(--text-muted);margin-top:-2px}.deadband-form .form-group-info{gap:.75rem}.deadband-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)}.deadband-form .port-info-item{display:flex;align-items:center;gap:8px;font-size:13px}.deadband-form .port-info-label{color:var(--text-secondary)}.deadband-form .port-info-value{color:var(--text-primary);font-family:var(--font-mono)}.deadband-form .port-info-value.highlight{color:var(--accent-purple);font-weight:600}.deadband-form .form-group-checkbox{gap:0}.deadband-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}.deadband-form .form-group-checkbox>label:hover{background:var(--bg-hover)}.deadband-form .form-group-checkbox input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--accent-primary);cursor:pointer}.deadband-form .checkbox-label{font-size:13px;font-weight:500;color:var(--text-primary);text-transform:none;letter-spacing:normal}.deadband-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}.deadband-form .form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.deadband-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)}.deadband-form .btn-secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.deadband-form .btn-secondary:hover{background:var(--bg-hover);border-color:var(--text-muted)}.deadband-form .btn-primary{background:var(--accent-primary);border:1px solid var(--accent-primary);color:#fff}.deadband-form .btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.deadband-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.deadband-modal-overlay{align-items:stretch;justify-content:stretch}.deadband-modal{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0;border:none;animation:dbMobileSlideUp .25s ease}@keyframes dbMobileSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.deadband-modal-header{border-radius:0;padding:12px 16px;min-height:var(--mobile-header-height)}.deadband-modal-title{font-size:16px}.deadband-modal-close{width:40px;height:40px}.deadband-modal-close svg{width:20px;height:20px}.deadband-modal-content{flex:1;padding:16px;overflow-y:auto;-webkit-overflow-scrolling:touch}.deadband-form .form-group input[type=text]{min-height:var(--touch-target-min);padding:12px;font-size:16px}.deadband-form .form-group>label{font-size:13px;margin-bottom:8px}.deadband-form .form-group-checkbox>label{min-height:var(--touch-target-min);padding:12px 16px}.deadband-form .form-group-checkbox input[type=checkbox]{width:20px;height:20px}.deadband-form .btn{min-height:var(--touch-target-min);padding:12px 20px;font-size:14px}.deadband-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-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-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-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}.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}.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}.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}.script-state-stopped{opacity:.5}.script-state-running circle{fill:#4ec9b0}.script-state-paused rect{fill:#ce9178}.script-state-loading circle{stroke:#569cd6}.device-state-connected circle{fill:#4ec9b0}.device-state-disconnected{opacity:.5}.device-state-disconnected circle{fill:#858585}.device-state-mock circle{fill:#c586c0}.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-workspaces-folder .tree-item-name,.tree-item-processes-folder .tree-item-name{font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary)}@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-workspaces-folder .tree-item-name,.tree-item-processes-folder .tree-item-name{font-size:12px}.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)}.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-widget-host{position:relative;width:100%;height:100%;overflow:hidden}.custom-widget-iframe{width:100%;height:100%;border:none;background:transparent;display:block;pointer-events:auto}.custom-widget-host.device-disconnected .custom-widget-iframe{filter:grayscale(80%) opacity(.35);pointer-events:none}.custom-widget-loading{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--text-muted);font-size:12px}.custom-widget-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}.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-widget-host.element-disabled .custom-widget-iframe{filter:grayscale(60%) opacity(.4);pointer-events:none}.custom-widget-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-widget-host.user-locked .custom-widget-iframe{pointer-events:none}.custom-widget-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}.custom-widget-locked-badge svg{width:14px;height:14px;display:block;fill:var(--text-muted, #a8a8a8)}.custom-widget-host.element-invisible .custom-widget-iframe{filter:grayscale(40%) opacity(.3);pointer-events:none}.custom-widget-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-widget-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-widget-host:hover .custom-widget-hover-controls,.custom-widget-host.touch-mode .custom-widget-hover-controls{opacity:1}.custom-widget-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-widget-drag-handle.widget-header{padding:0;min-height:0;background:none;border:none;border-bottom:none}.custom-widget-drag-handle:active{cursor:grabbing}.custom-widget-drag-handle svg{width:28px;height:28px;display:block;fill:currentColor}.custom-widget-layer-controls{display:flex;align-items:center;gap:4px;margin-left:auto;pointer-events:auto}.custom-widget-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-widget-layer-btn:hover:not(:disabled){color:var(--text-secondary)}.custom-widget-layer-btn:disabled{opacity:.45;cursor:not-allowed}.custom-widget-layer-btn svg{width:22px;height:22px;display:block;fill:currentColor}.custom-widget-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-widget-edit-btn:hover{color:var(--text-secondary)}.custom-widget-edit-btn svg{width:24px;height:24px;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;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}.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}@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)}.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:40px;height:40px}.canvas-control-zoom{min-width:48px;height:40px;font-size:11px;padding:0 8px}}.dashboard{position:relative;height:100%;width:100%;overflow:hidden;background:var(--bg-primary);touch-action:none}.dashboard.dashboard--with-header{display:flex;flex-direction:column}.dashboard-header{display:flex;align-items:center;justify-content:flex-end;flex-shrink:0;min-height:40px;padding:0 12px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);z-index:10}.dashboard-header-spacer{flex:1}.dashboard-canvas-area{flex:1;min-height:0;position:relative;overflow:hidden}body:has([class*=modal-overlay]) .dashboard{touch-action:auto}.dashboard.pan-enabled{cursor:grab}.dashboard.pan-enabled.panning{cursor:grabbing}.dashboard-canvas-area .canvas-viewport{position:absolute;top:0;left:0;width:10000px;height:8000px;padding:12px;will-change:transform;contain:layout style}.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{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}.widget-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)}.widget-container:hover{border-color:var(--text-muted);box-shadow:var(--shadow-sm)}.widget-container.widget-container--custom{background:transparent;border:none;box-shadow:none;border-radius:0}.widget-container.widget-container--custom:hover{border-color:transparent;box-shadow:none}.widget-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}.widget-container:hover .widget-layer-controls{opacity:1;pointer-events:auto}.widget-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}.widget-layer-btn:hover:not(:disabled){color:var(--text-primary);background:var(--bg-hover)}.widget-layer-btn:disabled{opacity:.45;cursor:not-allowed}.widget-layer-btn svg{width:14px;height:14px;fill:currentColor}.react-grid-item.react-grid-placeholder{background:var(--accent-primary);opacity:.15;border-radius:var(--radius-lg)}.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{-webkit-overflow-scrolling:touch}.dashboard-header{min-height:48px;padding:0 8px}.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}.widget-container{border-radius:var(--radius-xl)}.widget-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.pan-enabled .react-grid-item>.react-resizable-handle:after{opacity:1}}@media(pointer:coarse){.widget-container .widget-header{min-height:40px;cursor:grab}.widget-container .widget-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}.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: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-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}}.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:10}.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)}.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:#4bb44b40!important}.monaco-editor .execution-line-paused,.monaco-editor .view-overlays .execution-line-paused{background-color:#dcb43247!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:#4ec9b0!important}.monaco-editor .execution-line-decoration-paused{background-color:#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:#4ec9b0;box-shadow:0 0 6px #4ec9b0}.monaco-editor .execution-glyph-paused{background-color:#ddb34a;box-shadow:0 0 6px #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}.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}}.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;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}@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}.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)}}.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;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:12px;cursor:pointer;transition:background .2s ease,border-color .2s ease;flex-shrink:0}.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;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}.device-toggle-slider{width:22px;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-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-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;fill: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-swatch-container{position:relative;width:36px;height:36px;border-radius:var(--radius-md);border:1px solid var(--border-color);cursor:pointer;flex-shrink:0;transition:border-color var(--transition-fast)}.color-picker-swatch-container:hover{border-color:var(--text-muted)}.color-picker-native{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;border:none;padding:0}.color-picker-swatch{width:100%;height:100%;border-radius:calc(var(--radius-md) - 1px);pointer-events:none}.color-picker-text{flex:1;min-width:0;height:36px;padding:0 .5rem;font-family:var(--font-mono);font-size:11px;color:var(--text-primary);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);text-transform:uppercase;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.color-picker-text:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 2px #007acc26}.color-picker-text::placeholder{color:var(--text-muted);text-transform:none}.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-picker-swatch-container{width:40px;height:40px}.color-picker-text{height:40px;font-size:13px}}.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:4px}.theme-selector{position:relative}.theme-selector.loading{display:flex;align-items:center;gap:6px;padding:4px 8px;color:var(--text-secondary);font-size:12px}.theme-selector-button{display:flex;align-items:center;gap:6px;padding:4px 8px;background:transparent;border:1px solid transparent;border-radius:var(--radius-md);color:var(--text-primary);font-size:12px;cursor:pointer;transition:all var(--transition-normal);-webkit-app-region:no-drag}.theme-selector-button:hover{background:var(--bg-hover);border-color:var(--border-color)}.theme-selector-button[aria-expanded=true]{background:var(--bg-active);border-color:var(--border-color)}.theme-selector .theme-icon{display:flex;align-items:center;justify-content:center;width:14px;height:14px}.theme-selector .theme-icon svg{width:14px;height:14px}.theme-selector .theme-name{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.theme-selector .chevron{display:flex;align-items:center;justify-content:center;width:12px;height:12px;transition:transform .15s}.theme-selector .chevron svg{width:12px;height:12px}.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:280px;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;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}.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;box-shadow:0 1px #0000001a}.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:12px}.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}.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:16px}.app-status{display:flex;gap:12px;font-size:11px;color:var(--text-muted)}.status-item{display:flex;align-items:center;gap:4px}.status-item svg{flex-shrink:0}.status-license.status-licensed{color:var(--text-secondary)}.status-license.status-unlicensed{color:var(--text-muted);opacity:.9}.app-layout.mobile{height:100dvh}.app-header.mobile-header{height:var(--mobile-header-height);padding:0 8px;justify-content:flex-start;gap:8px}.mobile-menu-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;-webkit-app-region:no-drag}.mobile-menu-button:active{background:var(--bg-hover);color:var(--text-primary)}.mobile-menu-button svg{width:20px;height:20px}.mobile-header .app-title{font-size:14px;font-weight:500}.mobile-header .app-logo svg{width:18px;height:18px}.mobile-header-right{margin-left:auto}.app-layout.mobile .app-content.mobile-content{flex:1;overflow:hidden;padding-bottom:var(--mobile-nav-height)}.mobile-panel{height:100%;width:100%;overflow:hidden}.mobile-panel .pane-container,.mobile-panel .pane-content{height:100%}.app-layout.mobile .pane-header{display:none}.mobile-panel.explorer-panel .explorer-pane{background-color:var(--bg-secondary)}.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-menu-button,.mobile-header-right{display:none}}.app-content{flex:1;overflow:hidden}.pane-container{display:flex;flex-direction:column;height:100%;background-color:var(--bg-primary)}.pane-header{display:flex;align-items:center;gap:8px;height:35px;padding:0 20px 0 12px;background-color:var(--bg-secondary);border-bottom:1px solid var(--border-subtle);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--text-secondary);flex-shrink:0;box-shadow:0 1px #0000000f}.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:auto}.editor-pane .pane-content{overflow:hidden}.widget-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-host.widget-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.widget-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}.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-custom{width:18px;height:18px;padding:0;border:2px solid var(--border-color);border-radius:50%;cursor:pointer;background:none;flex-shrink:0;transition:border-color .15s}.we-preview-bg-custom:hover{border-color:var(--text-muted)}.we-preview-bg-custom::-webkit-color-swatch-wrapper{padding:0}.we-preview-bg-custom::-webkit-color-swatch{border:none;border-radius:50%}.we-preview-bg-custom::-moz-color-swatch{border:none;border-radius:50%}.widget-guide-page{display:flex;flex-direction:column;height:100vh;background:var(--bg-primary);color:var(--text-primary)}.widget-guide-header{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary)}.widget-guide-header h1{margin:0;font-size:15px;font-weight:600}.widget-guide-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:13px}.widget-guide-content{flex:1;overflow:auto;padding:20px 24px 32px;line-height:1.55}.widget-guide-content h1,.widget-guide-content h2,.widget-guide-content h3,.widget-guide-content h4{margin-top:1.4em;margin-bottom:.5em;line-height:1.3}.widget-guide-content p,.widget-guide-content ul,.widget-guide-content ol,.widget-guide-content pre,.widget-guide-content table{margin:.65em 0}.widget-guide-content code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;padding:.12em .35em}.widget-guide-content pre{padding:12px;border:1px solid var(--border-color);border-radius:8px;overflow:auto;background:var(--bg-secondary)}.widget-guide-content pre code{padding:0;border:none;background:transparent}.widget-guide-content a{color:var(--accent-primary);text-decoration:none}.widget-guide-content a:hover{text-decoration:underline}.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:1;overflow:hidden}.mock-device-left{width:380px;min-width:300px;overflow-y:auto;background:var(--bg-secondary);border-right:1px solid var(--border-subtle);padding:12px}.mock-device-right{flex:1;display:flex;flex-direction:column;overflow:hidden;background: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{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;margin:0 0 12px;padding-bottom:6px;border-bottom:1px solid var(--border-subtle);color:var(--text-secondary)}.port-control-section{margin-bottom:12px;padding:10px 12px;border-radius:var(--radius-lg, 8px);background:var(--bg-tertiary);border:1px solid var(--border-color);box-shadow:var(--shadow-xs)}.port-control-section h3{font-size:11px;font-weight:600;margin:0 0 8px;color:var(--text-primary)}.port-control-row{display:flex;align-items:center;gap:8px;margin-bottom:6px}.port-control-label{font-size:11px;color:var(--text-secondary);min-width:50px}.port-control-value-btn{font-size:13px;font-weight:600;font-family:Consolas,Fira Code,monospace;min-width:80px;text-align:center;padding:5px 12px;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:12px}.port-table-container h2{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;margin:0 0 8px;color:var(--text-secondary)}.port-table{width:100%;border-collapse:collapse;font-size:12px}.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{height:250px;min-height:150px;display:flex;flex-direction:column;border-top:1px solid var(--border-subtle)}.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;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}: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: 3px !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}}
