diff --git a/headscale/Makefile b/headscale/Makefile index 0a320ca7c..6aca2fc98 100644 --- a/headscale/Makefile +++ b/headscale/Makefile @@ -6,8 +6,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=headscale -PKG_VERSION:=0.29.2 -PKG_RELEASE:=6 +PKG_VERSION:=0.29.3 +PKG_RELEASE:=7 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/juanfont/headscale/tar.gz/v$(PKG_VERSION)? diff --git a/luci-app-log/Makefile b/luci-app-log/Makefile index 5760592cd..b8a262327 100644 --- a/luci-app-log/Makefile +++ b/luci-app-log/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-log-viewer PKG_VERSION:=1.5.0 -PKG_RELEASE:=3 +PKG_RELEASE:=4 LUCI_TITLE:=Advanced syslog and kernel log (tail, search, etc) LUCI_DEPENDS:=+ucode +ucode-mod-fs LUCI_PKGARCH:=all diff --git a/luci-app-log/README.md b/luci-app-log/README.md index 1dd1fdb66..ce23536f0 100644 --- a/luci-app-log/README.md +++ b/luci-app-log/README.md @@ -11,29 +11,29 @@ Supported LuCI themes: luci-theme-bootstrap, luci-theme-material, luci-theme-ope **OpenWrt >= 25.12:** - wget --no-check-certificate -O /tmp/luci-app-log-viewer-1.5.0-r3.apk https://github.com/gSpotx2f/packages-openwrt/raw/master/25.12/luci-app-log-viewer-1.5.0-r3.apk - apk --allow-untrusted add /tmp/luci-app-log-viewer-1.5.0-r3.apk - rm /tmp/luci-app-log-viewer-1.5.0-r3.apk + wget --no-check-certificate -O /tmp/luci-app-log-viewer-1.5.0-r4.apk https://github.com/gSpotx2f/packages-openwrt/raw/master/25.12/luci-app-log-viewer-1.5.0-r4.apk + apk --allow-untrusted add /tmp/luci-app-log-viewer-1.5.0-r4.apk + rm /tmp/luci-app-log-viewer-1.5.0-r4.apk service rpcd restart i18n-ru: - wget --no-check-certificate -O /tmp/luci-i18n-log-viewer-ru-1.5.0-r3.apk https://github.com/gSpotx2f/packages-openwrt/raw/master/25.12/luci-i18n-log-viewer-ru-1.5.0-r3.apk - apk --allow-untrusted add /tmp/luci-i18n-log-viewer-ru-1.5.0-r3.apk - rm /tmp/luci-i18n-log-viewer-ru-1.5.0-r3.apk + wget --no-check-certificate -O /tmp/luci-i18n-log-viewer-ru-1.5.0-r4.apk https://github.com/gSpotx2f/packages-openwrt/raw/master/25.12/luci-i18n-log-viewer-ru-1.5.0-r4.apk + apk --allow-untrusted add /tmp/luci-i18n-log-viewer-ru-1.5.0-r4.apk + rm /tmp/luci-i18n-log-viewer-ru-1.5.0-r4.apk **OpenWrt <= 24.10:** - wget --no-check-certificate -O /tmp/luci-app-log-viewer_1.5.0-r3_all.ipk https://github.com/gSpotx2f/packages-openwrt/raw/master/24.10/luci-app-log-viewer_1.5.0-r3_all.ipk - opkg install /tmp/luci-app-log-viewer_1.5.0-r3_all.ipk - rm /tmp/luci-app-log-viewer_1.5.0-r3_all.ipk + wget --no-check-certificate -O /tmp/luci-app-log-viewer_1.5.0-r4_all.ipk https://github.com/gSpotx2f/packages-openwrt/raw/master/24.10/luci-app-log-viewer_1.5.0-r4_all.ipk + opkg install /tmp/luci-app-log-viewer_1.5.0-r4_all.ipk + rm /tmp/luci-app-log-viewer_1.5.0-r4_all.ipk service rpcd restart i18n-ru: - wget --no-check-certificate -O /tmp/luci-i18n-log-viewer-ru_1.5.0-r3_all.ipk https://github.com/gSpotx2f/packages-openwrt/raw/master/24.10/luci-i18n-log-viewer-ru_1.5.0-r3_all.ipk - opkg install /tmp/luci-i18n-log-viewer-ru_1.5.0-r3_all.ipk - rm /tmp/luci-i18n-log-viewer-ru_1.5.0-r3_all.ipk + wget --no-check-certificate -O /tmp/luci-i18n-log-viewer-ru_1.5.0-r4_all.ipk https://github.com/gSpotx2f/packages-openwrt/raw/master/24.10/luci-i18n-log-viewer-ru_1.5.0-r4_all.ipk + opkg install /tmp/luci-i18n-log-viewer-ru_1.5.0-r4_all.ipk + rm /tmp/luci-i18n-log-viewer-ru_1.5.0-r4_all.ipk ## Screenshots: diff --git a/luci-app-log/dev-mods-examples/mod-multilog/root/usr/share/rpcd/acl.d/luci-app-log-viewer.json b/luci-app-log/dev-mods-examples/mod-multilog/root/usr/share/rpcd/acl.d/luci-app-log-viewer.json index 619026f4b..f4ae5c9d3 100644 --- a/luci-app-log/dev-mods-examples/mod-multilog/root/usr/share/rpcd/acl.d/luci-app-log-viewer.json +++ b/luci-app-log/dev-mods-examples/mod-multilog/root/usr/share/rpcd/acl.d/luci-app-log-viewer.json @@ -6,6 +6,7 @@ "file": { "/sbin/logread*": [ "exec" ], "/usr/sbin/logread*": [ "exec" ], + "/usr/libexec/logread-ubox*": [ "exec" ], "/bin/dmesg -r": [ "exec" ], "/var/log/messages": [ "read" ], "/var/log/secure": [ "read" ], diff --git a/luci-app-log/root/usr/share/rpcd/acl.d/luci-app-log-viewer.json b/luci-app-log/root/usr/share/rpcd/acl.d/luci-app-log-viewer.json index e5b091ad8..05f2bdcda 100644 --- a/luci-app-log/root/usr/share/rpcd/acl.d/luci-app-log-viewer.json +++ b/luci-app-log/root/usr/share/rpcd/acl.d/luci-app-log-viewer.json @@ -6,7 +6,8 @@ "file": { "/sbin/logread*": [ "exec" ], "/usr/sbin/logread*": [ "exec" ], - "/bin/dmesg -r": [ "exec" ] + "/bin/dmesg -r": [ "exec" ], + "/usr/libexec/logread-ubox*": [ "exec" ] }, "ubus": { "system": [ "info" ], diff --git a/luci-app-openlist2/Makefile b/luci-app-openlist2/Makefile index 8c50bf85e..bf3c17342 100644 --- a/luci-app-openlist2/Makefile +++ b/luci-app-openlist2/Makefile @@ -6,8 +6,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-openlist2 -PKG_VERSION:=1.0.2 -PKG_RELEASE:=4 +PKG_VERSION:=1.0.3 +PKG_RELEASE:=5 LUCI_TITLE:=LuCI support for openlist LUCI_DEPENDS:=+openlist2 diff --git a/luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js b/luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js index d6666ef9b..e2954924f 100644 --- a/luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js +++ b/luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js @@ -215,6 +215,7 @@ return view.extend({ s.tab('s3', _('Object Storage')); s.tab('ftp', _('FTP')); s.tab('sftp', _('SFTP')); + s.tab('mcp', _('MCP')); // init o = s.taboption('basic', form.Flag, 'enabled', _('Enabled')); @@ -646,6 +647,11 @@ return view.extend({ o.default = 5222; o.rmempty = false; + // mcp + o = s.taboption('mcp', form.Flag, 'mcp', _('Enabled MCP'), + _('Enable MCP (Model Context Protocol) server.')); + o.rmempty = false; + return m.render(); } }); diff --git a/luci-app-openlist2/po/templates/openlist2.po b/luci-app-openlist2/po/templates/openlist2.po index edf0a5218..c08ea1f23 100644 --- a/luci-app-openlist2/po/templates/openlist2.po +++ b/luci-app-openlist2/po/templates/openlist2.po @@ -116,6 +116,10 @@ msgstr "" msgid "SFTP" msgstr "" +#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:218 +msgid "MCP" +msgstr "" + #: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:220 msgid "Enabled" msgstr "" @@ -608,6 +612,14 @@ msgstr "" msgid "SFTP Port" msgstr "" +#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:651 +msgid "Enabled MCP" +msgstr "" + +#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:652 +msgid "Enable MCP (Model Context Protocol) server." +msgstr "" + #: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/logs.js:20 #: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/logs.js:29 msgid "No log data." diff --git a/luci-app-openlist2/po/zh_Hans/openlist2.po b/luci-app-openlist2/po/zh_Hans/openlist2.po index c442d538d..37b4b5962 100644 --- a/luci-app-openlist2/po/zh_Hans/openlist2.po +++ b/luci-app-openlist2/po/zh_Hans/openlist2.po @@ -117,6 +117,10 @@ msgstr "FTP" msgid "SFTP" msgstr "SFTP" +#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:218 +msgid "MCP" +msgstr "MCP" + #: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:220 msgid "Enabled" msgstr "启用" @@ -614,6 +618,14 @@ msgstr "启用 SFTP" msgid "SFTP Port" msgstr "SFTP 端口" +#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:651 +msgid "Enabled MCP" +msgstr "启用 MCP" + +#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:652 +msgid "Enable MCP (Model Context Protocol) server." +msgstr "启用 MCP(模型上下文协议)服务器。" + #: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/logs.js:20 #: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/logs.js:29 msgid "No log data." diff --git a/luci-app-openlist2/po/zh_Hant/openlist2.po b/luci-app-openlist2/po/zh_Hant/openlist2.po index 6497b69c7..ce365be7d 100644 --- a/luci-app-openlist2/po/zh_Hant/openlist2.po +++ b/luci-app-openlist2/po/zh_Hant/openlist2.po @@ -117,6 +117,10 @@ msgstr "FTP" msgid "SFTP" msgstr "SFTP" +#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:218 +msgid "MCP" +msgstr "MCP" + #: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:220 msgid "Enabled" msgstr "啟用" @@ -616,6 +620,14 @@ msgstr "啟用 SFTP" msgid "SFTP Port" msgstr "SFTP 埠" +#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:651 +msgid "Enabled MCP" +msgstr "啟用 MCP" + +#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:652 +msgid "Enable MCP (Model Context Protocol) server." +msgstr "啟用 MCP(模型上下文協定)伺服器。" + #: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/logs.js:20 #: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/logs.js:29 msgid "No log data." diff --git a/luci-app-passwall/Makefile b/luci-app-passwall/Makefile index c7006ad8a..3298b6886 100644 --- a/luci-app-passwall/Makefile +++ b/luci-app-passwall/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-passwall PKG_VERSION:=26.7.24 -PKG_RELEASE:=195 +PKG_RELEASE:=196 PKG_PO_VERSION:=$(PKG_VERSION) PKG_CONFIG_DEPENDS:= \ diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/type/sing-box.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/type/sing-box.lua index 3a2bdfe8c..a62cfeeb6 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/client/type/sing-box.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/type/sing-box.lua @@ -592,10 +592,6 @@ if singbox_tags:find("with_utls") then o:depends({ [_n("reality")] = true }) end -o = s:option(Flag, _n("anytls_disable_reuse"), translate("Disable TLS Reuse")) -o.default = 0 -o:depends({ [_n("protocol")] = "anytls" }) - o = s:option(ListValue, _n("transport"), translate("Transport")) o:value("tcp", "TCP") o:value("http", "HTTP") diff --git a/luci-app-passwall/luasrc/passwall/util_sing-box.lua b/luci-app-passwall/luasrc/passwall/util_sing-box.lua index 3ce1303d2..f4d08d609 100644 --- a/luci-app-passwall/luasrc/passwall/util_sing-box.lua +++ b/luci-app-passwall/luasrc/passwall/util_sing-box.lua @@ -613,7 +613,6 @@ function gen_outbound(flag, node, tag, proxy_table) idle_session_check_interval = "30s", idle_session_timeout = "30s", min_idle_session = 5, - disable_reuse = (node.anytls_disable_reuse == "1") and true or nil, tls = tls } end diff --git a/luci-app-passwall/po/zh-cn/passwall.po b/luci-app-passwall/po/zh-cn/passwall.po index 90430b440..504f2c717 100644 --- a/luci-app-passwall/po/zh-cn/passwall.po +++ b/luci-app-passwall/po/zh-cn/passwall.po @@ -2198,6 +2198,3 @@ msgstr "Gecko 包大小(最大)" msgid "valid time (hh:mm)" msgstr "有效时间(hh:mm)" - -msgid "Disable TLS Reuse" -msgstr "禁用 TLS 连接复用" diff --git a/luci-app-passwall/root/usr/share/passwall/clash_subconverter.lua b/luci-app-passwall/root/usr/share/passwall/clash_subconverter.lua index bee9e131e..bc6ec4215 100644 --- a/luci-app-passwall/root/usr/share/passwall/clash_subconverter.lua +++ b/luci-app-passwall/root/usr/share/passwall/clash_subconverter.lua @@ -478,8 +478,6 @@ local function encode_anytls(node) table.insert(p, "insecure=" .. (o.tls.insecure and "1" or "0")) end - if node["disable-reuse"] then table.insert(p, "disable_reuse=1") end - if #p > 0 then link = link .. "?" .. table.concat(p, "&") end diff --git a/luci-app-passwall/root/usr/share/passwall/subscribe.lua b/luci-app-passwall/root/usr/share/passwall/subscribe.lua index 7cab8ba72..b0d11daf8 100755 --- a/luci-app-passwall/root/usr/share/passwall/subscribe.lua +++ b/luci-app-passwall/root/usr/share/passwall/subscribe.lua @@ -1580,7 +1580,6 @@ local function processData(szType, content, add_mode, group, sub_cfg) end result.port = port result.tls_allowInsecure = params.allowinsecure or params.insecure - result.anytls_disable_reuse = params.disable_reuse end elseif szType == 'naive+https' or szType == 'naive+quic' then if has_singbox then diff --git a/luci-app-tinyfilemanager/Makefile b/luci-app-tinyfilemanager/Makefile index 135f1912c..00dbfba60 100644 --- a/luci-app-tinyfilemanager/Makefile +++ b/luci-app-tinyfilemanager/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk LUCI_NAME:=luci-app-tinyfilemanager PKG_VERSION:=2.6 -PKG_RELEASE:=3 +PKG_RELEASE:=4 LUCI_TITLE:=LuCI Tiny File Manager LUCI_DEPENDS:=+php8 +php8-cgi +php8-fastcgi +php8-fpm +php8-mod-session +php8-mod-ctype +php8-mod-fileinfo +php8-mod-zip +php8-mod-iconv +php8-mod-mbstring +coreutils-stat +zoneinfo-asia +bash +curl +tar +inotifywait @@ -22,7 +22,7 @@ define Package/$(LUCI_NAME)/conffiles /etc/config/tinyfilemanager endef -define Package/$(LUCI_NAME)/postinst +define Package/$(LUCI_NAME)/preinst #!/bin/sh mkdir -p "$${IPKG_INSTROOT}/www/tinyfilemanager" 2>/dev/null [ ! -d "$${IPKG_INSTROOT}/www/tinyfilemanager/rootfs" ] && ln -s / "$${IPKG_INSTROOT}/www/tinyfilemanager/rootfs" @@ -35,9 +35,6 @@ sed -Ei "s|^(memory_limit) *=.*$$|\1 = $$memory_limit|; \ s|^(upload_max_filesize) *=.*$$|\1 = $$single_size_limit|; \ s|^(max_file_uploads) *=.*$$|\1 = $$otime_uploads_limit|" \ "$${IPKG_INSTROOT}/etc/php.ini" -# unpack -tar -C "$${IPKG_INSTROOT}/www/tinyfilemanager" -xzf "$${IPKG_INSTROOT}/www/tinyfilemanager/index.tgz" -rm -f "$${IPKG_INSTROOT}/www/tinyfilemanager/index.tgz" endef define Package/$(LUCI_NAME)/prerm diff --git a/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js b/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js index 2c83a96d2..ba6867f81 100644 --- a/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js +++ b/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js @@ -60,6 +60,21 @@ return view.extend({ o.retain = true; o.depends('use_auth', '1'); + o = s.option(form.ListValue, 'autologin_user', _('Auto login user'), + _('Automatically login/logout of the specified user based on LuCI credentials.')); + o.load = function(section_id) { + delete this.keylist; + delete this.vallist; + + const users = uci.get(this.config, section_id, 'auth_users'); + this.value('', _('none')); + for (const userpw of users) + this.value(userpw.split(':')[0]); + + return this.super('load', section_id); + } + o.depends('use_auth', '1'); + o = s.option(form.Flag, 'global_readonly', _('Global Readonly')); o.default = o.disabled; o.rmempty = false; diff --git a/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/main.js b/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/main.js index 44eb58af0..a6e4752fa 100644 --- a/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/main.js +++ b/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/main.js @@ -10,8 +10,10 @@ return view.extend({ }, render() { + const sid = L.env.sessionid || ''; + const url = window.location.protocol + '//' + window.location.hostname + '/tinyfilemanager/' + `?luci_sid=${sid}`; return E('iframe', { - src: window.location.protocol + '//' + window.location.hostname + '/tinyfilemanager/', + src: url, style: 'width: 100%; min-height: 100vh; border: none; border-radius: 3px;' }); } diff --git a/luci-app-tinyfilemanager/po/templates/tinyfilemanager.pot b/luci-app-tinyfilemanager/po/templates/tinyfilemanager.pot index 620db2fb1..d5aad1efa 100644 --- a/luci-app-tinyfilemanager/po/templates/tinyfilemanager.pot +++ b/luci-app-tinyfilemanager/po/templates/tinyfilemanager.pot @@ -1,197 +1,206 @@ msgid "" msgstr "Content-Type: text/plain; charset=UTF-8" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:150 -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:151 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:63 +msgid "Auto login user" +msgstr "" + +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:64 +msgid "" +"Automatically login/logout of the specified user based on LuCI credentials." +msgstr "" + +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:161 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:162 msgid "Check update" msgstr "" -#: applications/luci-app-tinyfilemanager/root/usr/share/luci/menu.d/luci-app-tinyfilemanager.json:30 +#: root/usr/share/luci/menu.d/luci-app-tinyfilemanager.json:30 msgid "Config" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:80 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:93 msgid "D-M-YYYY" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:79 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:92 msgid "D.M.YYYY" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:81 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:94 msgid "D/M/YYYY" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:77 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:90 msgid "DD-MM-YYYY" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:76 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:89 msgid "DD.MM.YYYY" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:78 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:91 msgid "DD/MM/YYYY" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:75 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:88 msgid "Date format" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:118 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:129 msgid "Disable" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:44 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:42 msgid "Enable Authentication" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:130 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:141 msgid "Enable proxy for updater" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:111 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:121 msgid "Exclude Files/Folders" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:105 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:118 msgid "Favicon path" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:65 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:78 msgid "Global Readonly" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:119 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:130 msgid "Google Docs" msgstr "" -#: applications/luci-app-tinyfilemanager/root/usr/share/rpcd/acl.d/luci-app-tinyfilemanager.json:3 +#: root/usr/share/rpcd/acl.d/luci-app-tinyfilemanager.json:3 msgid "Grant access to tinyfilemanager procedures" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:93 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:106 msgid "H:mm:ss" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:92 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:105 msgid "HH:mm:ss" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:69 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:82 msgid "Home path" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:47 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:45 msgid "Login user name and passwd hash" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:124 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:135 msgid "Max upload size (MBytes)" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:120 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:131 msgid "Microsoft Web Apps" msgstr "" -#: applications/luci-app-tinyfilemanager/root/usr/share/luci/menu.d/luci-app-tinyfilemanager.json:3 +#: root/usr/share/luci/menu.d/luci-app-tinyfilemanager.json:3 msgid "NAS" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:116 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:127 msgid "Online Docs viewer" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:133 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:144 msgid "Proxy Protocol" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:143 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:154 msgid "Proxy Server" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:57 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:55 msgid "Readonly users" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:163 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:171 msgid "Releases list" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:34 -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:35 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:34 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:35 msgid "Reload" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:117 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:128 msgid "Requires running on open network" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:101 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:114 msgid "Show seconds in time" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:95 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:108 msgid "TT h:mm:ss" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:94 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:107 msgid "TT hh:mm:ss" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:91 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:104 msgid "Time format" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:170 -#: applications/luci-app-tinyfilemanager/root/usr/share/luci/menu.d/luci-app-tinyfilemanager.json:11 -#: applications/luci-app-tinyfilemanager/root/usr/share/luci/menu.d/luci-app-tinyfilemanager.json:22 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:178 +#: root/usr/share/luci/menu.d/luci-app-tinyfilemanager.json:11 +#: root/usr/share/luci/menu.d/luci-app-tinyfilemanager.json:22 msgid "Tiny File Manager" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:42 -msgid "To enable SSL support, you may need to install %s
" -msgstr "" - -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:170 -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:171 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:178 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:179 msgid "Uprgade" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:86 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:99 msgid "YYYY-M-D" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:83 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:96 msgid "YYYY-MM-DD" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:85 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:98 msgid "YYYY.M.D" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:82 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:95 msgid "YYYY.MM.DD" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:87 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:100 msgid "YYYY/M/D" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:84 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:97 msgid "YYYY/MM/DD" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:48 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:46 msgid "" "You can generate new passwd in File Manager -> Admin -> Help -> Generate " "new or Here." msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:97 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:110 msgid "h:mm:ss TT" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:96 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:109 msgid "hh:mm:ss TT" msgstr "" + +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:70 +msgid "none" +msgstr "" diff --git a/luci-app-tinyfilemanager/po/zh_Hans/tinyfilemanager.po b/luci-app-tinyfilemanager/po/zh_Hans/tinyfilemanager.po index f1ccc22bd..58dd0f9f5 100644 --- a/luci-app-tinyfilemanager/po/zh_Hans/tinyfilemanager.po +++ b/luci-app-tinyfilemanager/po/zh_Hans/tinyfilemanager.po @@ -12,199 +12,211 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 4.12.1-dev\n" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:150 -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:151 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:63 +msgid "Auto login user" +msgstr "自动登入用户" + +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:64 +msgid "" +"Automatically login/logout of the specified user based on LuCI credentials." +msgstr "根据 LuCI 凭据自动登入/登出指定用户。" + +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:161 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:162 msgid "Check update" msgstr "检查更新" -#: applications/luci-app-tinyfilemanager/root/usr/share/luci/menu.d/luci-app-tinyfilemanager.json:30 +#: root/usr/share/luci/menu.d/luci-app-tinyfilemanager.json:30 msgid "Config" msgstr "配置" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:80 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:93 msgid "D-M-YYYY" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:79 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:92 msgid "D.M.YYYY" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:81 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:94 msgid "D/M/YYYY" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:77 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:90 msgid "DD-MM-YYYY" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:76 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:89 msgid "DD.MM.YYYY" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:78 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:91 msgid "DD/MM/YYYY" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:75 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:88 msgid "Date format" msgstr "日期格式" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:118 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:129 msgid "Disable" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:44 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:42 msgid "Enable Authentication" msgstr "启用用户验证" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:130 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:141 msgid "Enable proxy for updater" msgstr "为更新器启用代理" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:111 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:121 msgid "Exclude Files/Folders" msgstr "排除 文件/目录" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:105 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:118 msgid "Favicon path" msgstr "Favicon 路径" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:65 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:78 msgid "Global Readonly" msgstr "全局只读" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:119 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:130 msgid "Google Docs" msgstr "" -#: applications/luci-app-tinyfilemanager/root/usr/share/rpcd/acl.d/luci-app-tinyfilemanager.json:3 +#: root/usr/share/rpcd/acl.d/luci-app-tinyfilemanager.json:3 msgid "Grant access to tinyfilemanager procedures" msgstr "授予访问 LuCI 应用 tinyfilemanager 的权限" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:93 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:106 msgid "H:mm:ss" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:92 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:105 msgid "HH:mm:ss" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:69 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:82 msgid "Home path" msgstr "家目录" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:47 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:45 msgid "Login user name and passwd hash" msgstr "登入用户名和密码哈希" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:124 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:135 msgid "Max upload size (MBytes)" msgstr "上传大小限制 (MBytes)" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:120 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:131 msgid "Microsoft Web Apps" msgstr "" -#: applications/luci-app-tinyfilemanager/root/usr/share/luci/menu.d/luci-app-tinyfilemanager.json:3 +#: root/usr/share/luci/menu.d/luci-app-tinyfilemanager.json:3 msgid "NAS" msgstr "存储" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:116 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:127 msgid "Online Docs viewer" msgstr "在线文档预览器" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:133 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:144 msgid "Proxy Protocol" msgstr "代理协议" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:143 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:154 msgid "Proxy Server" msgstr "代理服务器" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:57 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:55 msgid "Readonly users" msgstr "只读用户组" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:163 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:171 msgid "Releases list" msgstr "发布版列表" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:34 -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:35 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:34 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:35 msgid "Reload" msgstr "重载" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:117 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:128 msgid "Requires running on open network" msgstr "需要运行在开放网络" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:101 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:114 msgid "Show seconds in time" msgstr "显示秒" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:95 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:108 msgid "TT h:mm:ss" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:94 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:107 msgid "TT hh:mm:ss" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:91 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:104 msgid "Time format" msgstr "时间格式" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:170 -#: applications/luci-app-tinyfilemanager/root/usr/share/luci/menu.d/luci-app-tinyfilemanager.json:11 -#: applications/luci-app-tinyfilemanager/root/usr/share/luci/menu.d/luci-app-tinyfilemanager.json:22 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:178 +#: root/usr/share/luci/menu.d/luci-app-tinyfilemanager.json:11 +#: root/usr/share/luci/menu.d/luci-app-tinyfilemanager.json:22 msgid "Tiny File Manager" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:42 -msgid "To enable SSL support, you may need to install %s
" -msgstr "要启用 SSL 支持可能需先安装 %s
" - -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:170 -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:171 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:178 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:179 msgid "Uprgade" msgstr "升级" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:86 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:99 msgid "YYYY-M-D" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:83 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:96 msgid "YYYY-MM-DD" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:85 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:98 msgid "YYYY.M.D" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:82 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:95 msgid "YYYY.MM.DD" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:87 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:100 msgid "YYYY/M/D" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:84 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:97 msgid "YYYY/MM/DD" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:48 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:46 msgid "" "You can generate new passwd in File Manager -> Admin -> Help -> Generate " "new or Here." msgstr "" -"你可以在 文件管理器 -> Admin -> 帮助 -> 生成新的 or " -"这里。" +"你可以在 文件管理器 -> Admin -> 帮助 -> 生成新的 or 这里。" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:97 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:110 msgid "h:mm:ss TT" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:96 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:109 msgid "hh:mm:ss TT" msgstr "" + +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:70 +msgid "none" +msgstr "" + +#~ msgid "To enable SSL support, you may need to install %s
" +#~ msgstr "要启用 SSL 支持可能需先安装 %s
" diff --git a/luci-app-tinyfilemanager/po/zh_Hant/tinyfilemanager.po b/luci-app-tinyfilemanager/po/zh_Hant/tinyfilemanager.po index fb2986485..8aae949ec 100644 --- a/luci-app-tinyfilemanager/po/zh_Hant/tinyfilemanager.po +++ b/luci-app-tinyfilemanager/po/zh_Hant/tinyfilemanager.po @@ -12,199 +12,211 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 4.12.1-dev\n" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:150 -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:151 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:63 +msgid "Auto login user" +msgstr "自動登入用戶" + +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:64 +msgid "" +"Automatically login/logout of the specified user based on LuCI credentials." +msgstr "根據 LuCI 憑證自動登入/登出指定用戶。" + +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:161 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:162 msgid "Check update" msgstr "檢查更新" -#: applications/luci-app-tinyfilemanager/root/usr/share/luci/menu.d/luci-app-tinyfilemanager.json:30 +#: root/usr/share/luci/menu.d/luci-app-tinyfilemanager.json:30 msgid "Config" msgstr "組態" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:80 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:93 msgid "D-M-YYYY" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:79 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:92 msgid "D.M.YYYY" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:81 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:94 msgid "D/M/YYYY" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:77 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:90 msgid "DD-MM-YYYY" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:76 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:89 msgid "DD.MM.YYYY" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:78 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:91 msgid "DD/MM/YYYY" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:75 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:88 msgid "Date format" msgstr "日期格式" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:118 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:129 msgid "Disable" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:44 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:42 msgid "Enable Authentication" msgstr "啟用用戶認證" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:130 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:141 msgid "Enable proxy for updater" msgstr "為更新器啟用代理" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:111 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:121 msgid "Exclude Files/Folders" msgstr "排除 文件/目錄" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:105 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:118 msgid "Favicon path" msgstr "Favicon 路徑" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:65 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:78 msgid "Global Readonly" msgstr "全局只讀" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:119 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:130 msgid "Google Docs" msgstr "" -#: applications/luci-app-tinyfilemanager/root/usr/share/rpcd/acl.d/luci-app-tinyfilemanager.json:3 +#: root/usr/share/rpcd/acl.d/luci-app-tinyfilemanager.json:3 msgid "Grant access to tinyfilemanager procedures" msgstr "授予訪問 LuCI 應用 tinyfilemanager 的權限" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:93 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:106 msgid "H:mm:ss" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:92 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:105 msgid "HH:mm:ss" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:69 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:82 msgid "Home path" msgstr "家目錄" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:47 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:45 msgid "Login user name and passwd hash" msgstr "登入用戶名和密碼雜湊" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:124 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:135 msgid "Max upload size (MBytes)" msgstr "上傳大小限制 (MBytes)" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:120 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:131 msgid "Microsoft Web Apps" msgstr "" -#: applications/luci-app-tinyfilemanager/root/usr/share/luci/menu.d/luci-app-tinyfilemanager.json:3 +#: root/usr/share/luci/menu.d/luci-app-tinyfilemanager.json:3 msgid "NAS" msgstr "存儲" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:116 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:127 msgid "Online Docs viewer" msgstr "在線文檔預覽器" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:133 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:144 msgid "Proxy Protocol" msgstr "代理協議" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:143 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:154 msgid "Proxy Server" msgstr "代理伺服器" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:57 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:55 msgid "Readonly users" msgstr "只讀用戶組" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:163 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:171 msgid "Releases list" msgstr "發佈版本列表" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:34 -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:35 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:34 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:35 msgid "Reload" msgstr "重載" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:117 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:128 msgid "Requires running on open network" msgstr "需要運行在開放網路" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:101 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:114 msgid "Show seconds in time" msgstr "顯示秒" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:95 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:108 msgid "TT h:mm:ss" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:94 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:107 msgid "TT hh:mm:ss" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:91 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:104 msgid "Time format" msgstr "時間格式" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:170 -#: applications/luci-app-tinyfilemanager/root/usr/share/luci/menu.d/luci-app-tinyfilemanager.json:11 -#: applications/luci-app-tinyfilemanager/root/usr/share/luci/menu.d/luci-app-tinyfilemanager.json:22 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:178 +#: root/usr/share/luci/menu.d/luci-app-tinyfilemanager.json:11 +#: root/usr/share/luci/menu.d/luci-app-tinyfilemanager.json:22 msgid "Tiny File Manager" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:42 -msgid "To enable SSL support, you may need to install %s
" -msgstr "要啟用 SSL 支援可能需先安裝 %s
" - -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:170 -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:171 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:178 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:179 msgid "Uprgade" msgstr "升級" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:86 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:99 msgid "YYYY-M-D" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:83 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:96 msgid "YYYY-MM-DD" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:85 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:98 msgid "YYYY.M.D" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:82 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:95 msgid "YYYY.MM.DD" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:87 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:100 msgid "YYYY/M/D" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:84 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:97 msgid "YYYY/MM/DD" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:48 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:46 msgid "" "You can generate new passwd in File Manager -> Admin -> Help -> Generate " "new or Here." msgstr "" -"你可以在 檔案管理器 -> Admin -> 幫助 -> 建立新的 or " -"這裡。" +"你可以在 檔案管理器 -> Admin -> 幫助 -> 建立新的 or 這裡。" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:97 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:110 msgid "h:mm:ss TT" msgstr "" -#: applications/luci-app-tinyfilemanager/htdocs/luci-static/resources/view/tinyfilemanager/config.js:96 +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:109 msgid "hh:mm:ss TT" msgstr "" + +#: htdocs/luci-static/resources/view/tinyfilemanager/config.js:70 +msgid "none" +msgstr "" + +#~ msgid "To enable SSL support, you may need to install %s
" +#~ msgstr "要啟用 SSL 支援可能需先安裝 %s
" diff --git a/luci-app-tinyfilemanager/root/etc/init.d/tinyfilemanager b/luci-app-tinyfilemanager/root/etc/init.d/tinyfilemanager index 54fbe11d4..47cfff098 100755 --- a/luci-app-tinyfilemanager/root/etc/init.d/tinyfilemanager +++ b/luci-app-tinyfilemanager/root/etc/init.d/tinyfilemanager @@ -32,6 +32,7 @@ validate_section() { 'use_auth:bool:0' \ 'auth_users:list(string)' \ 'readonly_users:list(string)' \ + 'autologin_user:string' \ 'global_readonly:bool:0' \ 'root_path:directory' \ 'date_format:or("d.m.o", "d-m-o", "d/m/o", "j.n.o", "j-n-o", "j/n/o", "o.m.d", "o-m-d", "o/m/d", "o.n.j", "o-n-j", "o/n/j"):d.m.o' \ @@ -50,6 +51,7 @@ init_config() { s|// --- EDIT BELOW CONFIGURATION CAREFULLY ---|\|; \ /\/\/ if User has the external config file, try to use it to override the default config above/,/^}/d; \ + /^define(/d; \ p \ }" "$WORKDIR/index.php" > "$1" @@ -72,6 +74,7 @@ apply_config() { [ -n "$defconf" ] && sed -Ei "s|^\\\$CONFIG\s*=.*|\$CONFIG = '$defconf'\;|" "$_conf" [ "$use_auth" -eq "1" ] && sed -Ei "s|(^\\\$use_auth =)(.+)|\1 true;|" "$_conf" || sed -Ei "s|(^\\\$use_auth =)(.+)|\1 false;|" "$_conf" +[ -n "$autologin_user" ] && sed -Ei "s|\?>|\$luci_autologin_user = '$autologin_user';\ninclude '/usr/share/tinyfilemanager/auto-login-base-luci.php';\n\n?>|" "$_conf" [ "$global_readonly" -eq "1" ] && sed -Ei "s|(^\\\$global_readonly =)(.+)|\1 true;|" "$_conf" || sed -Ei "s|(^\\\$global_readonly =)(.+)|\1 false;|" "$_conf" sed -Ei "/^\\\$auth_users /,/\);/{/^ /d}" "$_conf" && sed -Ei "/^\\\$auth_users /a\ $auth_users" "$_conf" sed -Ei "/^\\\$readonly_users /,/\);/{/^ /d}" "$_conf" && sed -Ei "/^\\\$readonly_users /a\ $readonly_users" "$_conf" diff --git a/luci-app-tinyfilemanager/root/etc/uci-defaults/99_luci-app-tinyfilemanager b/luci-app-tinyfilemanager/root/etc/uci-defaults/99_luci-app-tinyfilemanager index 3a280dac3..9d6b2eec1 100644 --- a/luci-app-tinyfilemanager/root/etc/uci-defaults/99_luci-app-tinyfilemanager +++ b/luci-app-tinyfilemanager/root/etc/uci-defaults/99_luci-app-tinyfilemanager @@ -1,5 +1,9 @@ #!/bin/sh +# unpack +tar -C /www/tinyfilemanager -xzf /www/tinyfilemanager/index.tgz +rm -f /www/tinyfilemanager/index.tgz + # uhttpd uci -q get uhttpd.main.index_page|grep -i 'index.php' >/dev/null || uci add_list uhttpd.main.index_page='index.php' uci -q get uhttpd.main.interpreter|grep -i '.php=/usr/bin/php-cgi' >/dev/null || uci add_list uhttpd.main.interpreter='.php=/usr/bin/php-cgi' diff --git a/luci-app-tinyfilemanager/root/usr/share/tinyfilemanager/auto-login-base-luci.php b/luci-app-tinyfilemanager/root/usr/share/tinyfilemanager/auto-login-base-luci.php new file mode 100644 index 000000000..827c24cd2 --- /dev/null +++ b/luci-app-tinyfilemanager/root/usr/share/tinyfilemanager/auto-login-base-luci.php @@ -0,0 +1,49 @@ +/dev/null'); + return $out && strpos($out, '"username"') !== false; +} + +// Step 1: luci_sid in URL → validate and auto-login +if (!empty($_GET['luci_sid'])) { + $sid = preg_replace('/[^a-f0-9]/', '', $_GET['luci_sid']); + if (luci_validate_sid($sid)) { + $_SESSION['filemanager']['logged'] = $luci_autologin_user; + $_SESSION['filemanager']['luci_sid'] = $sid; + session_write_close(); + header('Location: /tinyfilemanager/'); + exit; + } else { + unset($_SESSION['filemanager']['logged']); + unset($_SESSION['filemanager']['luci_sid']); + session_write_close(); + http_response_code(403); + die('LuCI session invalid or expired.'); + } +} + +// Step 2: On every request, re-validate stored LuCI session +if (!empty($_SESSION['filemanager']['logged'])) { + $sid = $_SESSION['filemanager']['luci_sid'] ?? ''; + if (!luci_validate_sid($sid)) { + // LuCI session expired → force logout + unset($_SESSION['filemanager']['logged']); + unset($_SESSION['filemanager']['luci_sid']); + session_write_close(); + header('Location: /tinyfilemanager/'); + exit; + } +} + +session_write_close(); + +?> diff --git a/luci-theme-aurora/.dev/src/media/components/_syslog.css b/luci-theme-aurora/.dev/src/media/components/_syslog.css index 8c2e4912b..b9fda77f2 100644 --- a/luci-theme-aurora/.dev/src/media/components/_syslog.css +++ b/luci-theme-aurora/.dev/src/media/components/_syslog.css @@ -21,10 +21,12 @@ styling from _layout.css still applies. Chosen design (user-picked variant "彩色级别词", Vercel/Axiom style): - fixed-width time · level · source columns so messages start flush; the - level is a short uppercase word colored per severity (facility lives in - its tooltip), source neutral, err-and-above rows tinted, whole lines with - sideways scrolling (the stock textarea's wrap="off" model). Fields are + min-width time · level · source columns so messages start flush while + every token renders verbatim — year, timezone, colons, ctime padding all + kept, nothing truncated — so a copied row is byte-identical to the source + line; the level token is colored per severity, source neutral, + err-and-above rows tinted, whole lines with sideways scrolling (the stock + textarea's wrap="off" model). Fields are inline-blocks inside inline flow (not grid/flex) so the real spaces between them survive into copied text. */ @@ -43,6 +45,9 @@ @apply font-mono text-xs leading-relaxed; /* Whole lines, sideways scroll (the stock textarea's wrap="off" model). */ @apply overflow-x-auto; + /* Focusable (tabIndex in the companion JS) so select-all stays inside the + log; only keyboard focus draws the ring — a click into the log must not. */ + @apply focus-visible:ring-focus-ring outline-none focus-visible:ring-2; & .log-row { /* max-content width so hover/tint backgrounds span the scrolled width. */ @@ -61,17 +66,20 @@ & .log-time { @apply text-text-subtle; - @apply md:inline-block md:w-[15ch] md:overflow-hidden md:align-bottom md:whitespace-nowrap; + /* ctime stamps are a fixed 24ch; RPC datestrs run longer but uniform. */ + @apply md:inline-block md:min-w-[24ch] md:align-bottom; } & .log-sev { - @apply font-semibold tracking-wide uppercase; - @apply md:inline-block md:w-[7ch] md:overflow-hidden md:align-bottom md:whitespace-nowrap; + /* "authpriv.notice:" is 16ch — the longest real fac.sev token. */ + @apply font-semibold; + @apply md:inline-block md:min-w-[16ch] md:align-bottom; } & .log-tag { @apply text-text-muted; - @apply md:inline-block md:max-w-[18ch] md:overflow-hidden md:align-bottom md:text-ellipsis md:whitespace-nowrap; + /* min-width, not a clamp: long tags extend rather than truncate. */ + @apply md:inline-block md:min-w-[18ch] md:align-bottom; } & .lv-info .log-sev { diff --git a/luci-theme-aurora/.dev/src/resource/patches/admin-status-logs.js b/luci-theme-aurora/.dev/src/resource/patches/admin-status-logs.js index e83134bdc..38f5a9e53 100644 --- a/luci-theme-aurora/.dev/src/resource/patches/admin-status-logs.js +++ b/luci-theme-aurora/.dev/src/resource/patches/admin-status-logs.js @@ -70,61 +70,56 @@ return m ? { tag: m[1], msg: m[2] } : { tag: "", msg: rest }; } - // Compress "Jul 24, 2026, 10:59:50 PM UTC"-style stamps (master's RPC path - // formats with the *browser* locale). Only en-style patterns are recognized; - // anything else is shown untouched rather than guessed at. - function shortenTime(datestr) { - const m = datestr.match( - /^(\w{3}) (\d{1,2}), \d{4}, (\d{1,2}):(\d{2}):(\d{2})\s*(AM|PM)?/, - ); - if (!m) return datestr; - let h = parseInt(m[3], 10); - if (m[6] === "PM" && h < 12) h += 12; - if (m[6] === "AM" && h === 12) h = 0; - const hh = (h < 10 ? "0" : "") + h; - return `${m[1]} ${m[2].padStart(2, "0")} ${hh}:${m[4]}:${m[5]}`; - } - /* System log line, two shapes: A (master RPC): [] fac.sev: tag[pid]: msg B (classic logread, Www Mmm dd hh:mm:ss yyyy fac.sev tag[pid]: msg - 23.05 + 24.10 syslog-wrapper + master's RPC-failure fallback) */ + 23.05 + 24.10 syslog-wrapper + master's RPC-failure fallback) + Every captured token is kept verbatim — year, timezone, 12-hour clock, + ctime's padded day, the colons — so rejoining the rendered fields with + single spaces reproduces the source line byte for byte. The enhancement + aligns and colors; it never rewrites. */ function parseSyslogLine(line) { let m = line.match(/^\[(.+?)\]\s+(\w+)\.(\w+):\s+([\s\S]*)$/); if (m && FACILITIES.has(m[2]) && SEVERITIES.has(m[3])) return { - time: shortenTime(m[1]), - fullTime: m[1], + time: `[${m[1]}]`, fac: m[2], sev: m[3], + sevTok: `${m[2]}.${m[3]}:`, ...splitTag(m[4]), }; m = line.match( - /^\w{3} (\w{3}) +(\d{1,2}) (\d{2}:\d{2}:\d{2}) (\d{4}) (\w+)\.(\w+) ([\s\S]*)$/, + /^(\w{3} \w{3} +\d{1,2} \d{2}:\d{2}:\d{2} \d{4}) (\w+)\.(\w+) ([\s\S]*)$/, ); - if (m && FACILITIES.has(m[5]) && SEVERITIES.has(m[6])) + if (m && FACILITIES.has(m[2]) && SEVERITIES.has(m[3])) return { - time: `${m[1]} ${m[2].padStart(2, "0")} ${m[3]}`, - fullTime: line.slice(0, line.indexOf(` ${m[5]}.${m[6]} `)), - fac: m[5], - sev: m[6], - ...splitTag(m[7]), + time: m[1], + fac: m[2], + sev: m[3], + sevTok: `${m[2]}.${m[3]}`, + ...splitTag(m[4]), }; return null; } /* Kernel log line: `[ 73412.882110] msg`. No severity survives into the - text on any LuCI version (both eras strip/drop the prefix), so dmesg - gets time/tag/typography only — no level colors, no keyword guessing. */ + text on any LuCI version (master runs `dmesg -r` and strips the + prefix after filtering on it; the classic pages never had it), and kernel + messages have no uniform tag grammar — drivers print "name addr.dev + port:", bare text, indented continuations — which is why upstream renders + dmesg as plain unstyled text. A partial tag split styled only some lines + and ate only their colons, so the message stays verbatim: time dimming + and typography only. */ function parseDmesgLine(line) { - const m = line.match(/^\[\s*(\d+\.\d+)\]\s?([\s\S]*)$/); + const m = line.match(/^(\[\s*\d+\.\d+\])\s?([\s\S]*)$/); if (!m) return null; return { - time: `[${m[1]}]`, - fullTime: "", + time: m[1], fac: "", sev: "", - ...splitTag(m[2]), + sevTok: "", + tag: "", + msg: m[2], }; } @@ -140,7 +135,6 @@ parseSyslogLine, parseDmesgLine, splitTag, - shortenTime, evaluate, PARSE_GATE, }; @@ -175,18 +169,16 @@ const p = entry.parsed; row.className = "log-row" + (p.sev ? ` lv-${SEV_CLASS[p.sev]}` : ""); // Real space text nodes between plain inline spans: the row wraps like - // terminal output and selection copies clean text. The level is the short - // severity word (CSS uppercases and colors it; facility lives in its - // tooltip); the source keeps its full name in a tooltip for when the - // aligned column truncates it. - row.appendChild(span("log-time", p.time, p.fullTime)); - if (p.sev) { + // terminal output, and because every field renders verbatim (punctuation + // included) a copied row is byte-identical to the source line. + row.appendChild(span("log-time", p.time)); + if (p.sevTok) { row.appendChild(document.createTextNode(" ")); - row.appendChild(span("log-sev", p.sev, `${p.fac}.${p.sev}`)); + row.appendChild(span("log-sev", p.sevTok)); } if (p.tag) { row.appendChild(document.createTextNode(" ")); - row.appendChild(span("log-tag", p.tag, p.tag)); + row.appendChild(span("log-tag", p.tag + ":")); } row.appendChild(document.createTextNode(" ")); row.appendChild(span("log-msg", p.msg)); @@ -209,6 +201,21 @@ if (!viewer) { viewer = document.createElement("div"); viewer.className = "syslog-view"; + // The stock textarea contained Ctrl+A for free — a focused form control + // is its own selection context. A plain div is not (the standard switch, + // user-select:contain, ships in no browser), so reproduce it: clicking + // the log focuses the viewer, and select-all inside it stays inside it. + viewer.tabIndex = 0; + viewer.addEventListener("keydown", function (e) { + if ((e.ctrlKey || e.metaKey) && e.key.toLowerCase() === "a") { + e.preventDefault(); + const sel = window.getSelection(); + sel.removeAllRanges(); + const range = document.createRange(); + range.selectNodeContents(viewer); + sel.addRange(range); + } + }); textarea.insertAdjacentElement("afterend", viewer); container.classList.add("log-enhanced"); } @@ -227,8 +234,18 @@ if (viewer && selectionInside(viewer)) return; lastValue = value; const { rows, ratio } = evaluate(value, parseLine); - if (ratio >= PARSE_GATE) render(textarea, container, rows); - else teardown(container); + if (ratio >= PARSE_GATE) { + // Tail-follow: a reader already pinned to the bottom stays pinned as new + // lines arrive; any other scroll position is never touched. The content + // area scrolls the window (main uses min-h, no inner scroller), and the + // `viewer &&` guard keeps the first paint from jumping — same as stock. + const follow = + viewer && + window.innerHeight + window.scrollY >= + document.documentElement.scrollHeight - 40; + render(textarea, container, rows); + if (follow) window.scrollTo(0, document.documentElement.scrollHeight); + } else teardown(container); } // Content updates: LuCI's poll rewrites .value, which fires nothing — a diff --git a/luci-theme-aurora/.dev/tests/log-patch.test.js b/luci-theme-aurora/.dev/tests/log-patch.test.js index 54b77ee98..6547262b0 100644 --- a/luci-theme-aurora/.dev/tests/log-patch.test.js +++ b/luci-theme-aurora/.dev/tests/log-patch.test.js @@ -18,29 +18,29 @@ new Function("module", "exports", "document", "window", source)( undefined, undefined, ); -const { parseSyslogLine, parseDmesgLine, shortenTime, evaluate, PARSE_GATE } = - mod.exports; +const { parseSyslogLine, parseDmesgLine, evaluate, PARSE_GATE } = mod.exports; test("classic logread format (23.05 syslog, 24.10 syslog-wrapper) parses", () => { const r = parseSyslogLine( "Sat Jul 26 03:14:15 2026 daemon.info dnsmasq-dhcp[1]: DHCPACK(br-lan) 192.168.1.140", ); assert.deepEqual( - { time: r.time, fac: r.fac, sev: r.sev, tag: r.tag }, + { time: r.time, fac: r.fac, sev: r.sev, sevTok: r.sevTok, tag: r.tag }, { - time: "Jul 26 03:14:15", + time: "Sat Jul 26 03:14:15 2026", fac: "daemon", sev: "info", + sevTok: "daemon.info", tag: "dnsmasq-dhcp[1]", }, ); assert.equal(r.msg, "DHCPACK(br-lan) 192.168.1.140"); - // ctime() pads single-digit days with a space. + // ctime() pads single-digit days with a space — kept verbatim. const padded = parseSyslogLine( "Sun Jul 6 09:05:07 2026 daemon.warn odhcpd[2029]: No default route present", ); - assert.equal(padded.time, "Jul 06 09:05:07"); + assert.equal(padded.time, "Sun Jul 6 09:05:07 2026"); // Kernel lines routed through logread; hostapd logs without a pid. assert.equal( @@ -58,18 +58,19 @@ test("classic logread format (23.05 syslog, 24.10 syslog-wrapper) parses", () => }); test("master RPC bracket format parses across browser locales", () => { + // The datestr renders verbatim, brackets and timezone included — the + // stamp is UTC-formatted upstream and hiding the zone read as local time. const en = parseSyslogLine( "[Jul 24, 2026, 10:59:50 PM UTC] daemon.info: dnsmasq-dhcp[1]: DHCPREQUEST(br-lan) 192.168.1.140", ); - assert.equal(en.time, "Jul 24 22:59:50"); - assert.equal(en.fullTime, "Jul 24, 2026, 10:59:50 PM UTC"); + assert.equal(en.time, "[Jul 24, 2026, 10:59:50 PM UTC]"); + assert.equal(en.sevTok, "daemon.info:"); - // timeStyle "full" spells the zone out; still en-shaped, still shortened. assert.equal( parseSyslogLine( "[Jul 24, 2026, 10:59:50 PM Coordinated Universal Time] daemon.warn: odhcpd[2029]: No default route present", ).time, - "Jul 24 22:59:50", + "[Jul 24, 2026, 10:59:50 PM Coordinated Universal Time]", ); // Non-en datestrs parse fine and display untouched — never guessed at. @@ -77,7 +78,26 @@ test("master RPC bracket format parses across browser locales", () => { "[2026年7月24日 GMT 22:59:50] daemon.err: odhcpd[2029]: Failed to send RA", ); assert.equal(zh.sev, "err"); - assert.equal(zh.time, "2026年7月24日 GMT 22:59:50"); + assert.equal(zh.time, "[2026年7月24日 GMT 22:59:50]"); +}); + +test("rendered tokens rejoin into the source line byte for byte", () => { + const lines = [ + "[Jul 24, 2026, 10:59:50 PM UTC] daemon.info: dnsmasq-dhcp[1]: DHCPREQUEST(br-lan) 192.168.1.140", + "[Jul 25, 2026, 4:30:55 PM UTC] kern.info: [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x51af8014]", + "Sun Jul 6 09:05:07 2026 daemon.warn odhcpd[2029]: No default route present", + "Sat Jul 26 03:14:16 2026 kern.info kernel: [73412.882110] br-lan: port 3(lan3) entered forwarding state", + ]; + for (const line of lines) { + const p = parseSyslogLine(line); + const parts = [p.time, p.sevTok]; + if (p.tag) parts.push(p.tag + ":"); + parts.push(p.msg); + assert.equal(parts.join(" "), line, line); + } + const dm = "[ 12.345678] br-lan: port 3(lan3) entered forwarding state"; + const d = parseDmesgLine(dm); + assert.equal([d.time, d.msg].join(" "), dm); }); test("severity comes from the field, never from message content", () => { @@ -105,15 +125,19 @@ test("unknown facility/severity and foreign formats are rejected", () => { assert.equal(parseSyslogLine(""), null); }); -test("dmesg lines: uptime stamp and safe tag split, no severity", () => { +test("dmesg lines: uptime stamp only, message verbatim, no severity", () => { + // Kernel lines have no uniform tag grammar (upstream renders them as plain + // text for the same reason) — a partial split styled only some lines and + // ate only their colons, so no tag is ever extracted and the message keeps + // its punctuation untouched. const r = parseDmesgLine( "[ 12.345678] br-lan: port 3(lan3) entered forwarding state", ); - assert.equal(r.time, "[12.345678]"); - assert.equal(r.tag, "br-lan"); + assert.equal(r.time, "[ 12.345678]"); + assert.equal(r.tag, ""); assert.equal(r.sev, ""); + assert.equal(r.msg, "br-lan: port 3(lan3) entered forwarding state"); - // A device path with spaces must not be mistaken for a tag. const pci = parseDmesgLine( "[75821.004518] mt7921e 0000:01:00.0: Message 00000010 timeout", ); @@ -123,15 +147,6 @@ test("dmesg lines: uptime stamp and safe tag split, no severity", () => { assert.equal(parseDmesgLine("no bracket prefix here"), null); }); -test("shortenTime handles 12-hour edges and leaves unknown shapes alone", () => { - assert.equal(shortenTime("Jul 24, 2026, 12:05:01 AM UTC"), "Jul 24 00:05:01"); - assert.equal(shortenTime("Jul 24, 2026, 12:15:09 PM UTC"), "Jul 24 12:15:09"); - assert.equal( - shortenTime("2026年7月24日 GMT 22:59:50"), - "2026年7月24日 GMT 22:59:50", - ); -}); - test("parse gate: mixed content falls back, empty value stays calm", () => { const good = "Sat Jul 26 03:14:15 2026 daemon.info dnsmasq[1]: ok"; const bad = "Jul 26 10:00:00 OpenWrt dnsmasq[123]: syslog-ng style"; diff --git a/luci-theme-aurora/Makefile b/luci-theme-aurora/Makefile index 44447cab9..32638fb62 100644 --- a/luci-theme-aurora/Makefile +++ b/luci-theme-aurora/Makefile @@ -8,8 +8,8 @@ include $(TOPDIR)/rules.mk LUCI_TITLE:=Aurora Theme (A modern browser theme built with Vite and Tailwind CSS) LUCI_DEPENDS:=+luci-base -PKG_VERSION:=1.1.8 -PKG_RELEASE:=60 +PKG_VERSION:=1.1.10 +PKG_RELEASE:=61 PKG_LICENSE:=Apache-2.0 LUCI_MINIFY_CSS:= diff --git a/luci-theme-aurora/htdocs/luci-static/aurora/main.css b/luci-theme-aurora/htdocs/luci-static/aurora/main.css index bbe4e8f43..10d8e829b 100644 --- a/luci-theme-aurora/htdocs/luci-static/aurora/main.css +++ b/luci-theme-aurora/htdocs/luci-static/aurora/main.css @@ -1,2 +1,2 @@ /*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */ -@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-border-style:solid;--tw-duration:initial;--tw-ease:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-content:"";--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-space-y-reverse:0;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-border-spacing-x:0;--tw-border-spacing-y:0}}}@layer theme{:root,:host{--font-sans:var(--font-sans);--font-mono:var(--font-mono);--spacing:var(--spacing);--container-xs:20rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--blur-md:12px;--blur-lg:16px;--blur-xl:24px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components,utilities;:root{--bg:#f7fafc;--surface:#fff;--text:#121a22;--brand:#0085b7;--on-brand:#fff;--link:#0085b7;--info:#0e5794;--warning:#643e00;--success:#004f3e;--danger:#8d1925;--text-muted:#5f666d;--text-subtle:#7f858b;--surface-sunken:#f4f7fa;--surface-overlay:#fff;--hairline:#121a2221;--hover-faint:#ebeff2;--brand-hover:#0073a3;--brand-subtle:#ddecf5;--brand-subtle-hover:#d0dfe8;--focus-ring:#0085b799;--progress-start:#64aed5;--progress-end:#0085b7;--info-surface:#deefff;--warning-surface:#ffedd6;--success-surface:#d3f8eb;--danger-surface:#ffe8e6;--danger-surface-hover:#f9d9d7;--control-bg:#fff;--scrim:#0009;--mega-menu-bg:#f1f7fa;--mega-menu-scrim:#0d1c2a61;--app-shadow-sm:0 1px 3px #0000000f, 0 1px 2px #0000000a;--app-shadow-md:0 4px 16px #00000014, 0 1px 3px #0000000a;--app-shadow-lg:0 12px 32px #0000001f;--app-opacity-disabled:.4;--font-sans:"Lato", ui-sans-serif, system-ui, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace;--spacing:.25rem;--content-width-centered:80rem;--radius-base:.5rem}@supports (color:lab(0% 0 0)){:root{--bg:lab(98.1553% -.760227 -1.25223);--surface:lab(100% 0 0);--text:lab(8.89727% -1.68239 -6.93074);--brand:lab(51.3503% -19.237 -40.2116);--on-brand:lab(100% 0 0);--link:lab(51.3503% -19.237 -40.2116);--info:lab(35.5745% -2.86636 -40.2468);--warning:lab(30.2236% 14.0359 42.8654);--success:lab(29.3859% -35.8952 5.0677);--danger:lab(31.1495% 47.9256 25.8661);--text-muted:lab(42.8254% -1.57365 -4.8763);--text-subtle:lab(55.3248% -1.4126 -4.053);--surface-sunken:lab(97.114% -.949115 -1.56456);--surface-overlay:lab(100.011% -.760317 -1.25225);--hairline:lab(8.89727% -1.68239 -6.93074/.13);--hover-faint:lab(94.2168% -1.13726 -1.87657);--brand-hover:lab(44.3401% -18.0233 -40.0589);--brand-subtle:lab(92.5794% -3.9458 -6.17858);--brand-subtle-hover:lab(87.9391% -3.94133 -6.17628);--focus-ring:lab(51.3503% -19.237 -40.2116/.6);--progress-start:lab(67.4852% -15.7175 -27.197);--progress-end:lab(51.3503% -19.237 -40.2116);--info-surface:lab(93.5628% -4.16487 -14.7881);--warning-surface:lab(94.8007% 4.75499 15.6111);--success-surface:lab(94.7525% -14.2308 2.09508);--danger-surface:lab(93.849% 11.2841 5.29771);--danger-surface-hover:lab(89.2089% 11.2856 5.30034);--control-bg:lab(100.011% -.760317 -1.25225);--scrim:lab(0% 0 0/.6);--mega-menu-bg:lab(96.7742% -1.51286 -2.50006);--mega-menu-scrim:lab(9.40633% -2.1807 -11.9349/.38);--app-shadow-sm:0 1px 3px lab(0% 0 0/.06), 0 1px 2px lab(0% 0 0/.04);--app-shadow-md:0 4px 16px lab(0% 0 0/.08), 0 1px 3px lab(0% 0 0/.04);--app-shadow-lg:0 12px 32px lab(0% 0 0/.12)}}[data-darkmode=true]{--bg:#05070e;--surface:#141822;--text:#f9fafb;--brand:#00958e;--on-brand:#fff;--link:#00958e;--info:#90c1ff;--warning:#f0ba59;--success:#51bd85;--danger:#f17070;--text-muted:#909297;--text-subtle:#5d6067;--surface-sunken:#0a0e17;--surface-overlay:#181d27;--hairline:#f9fafb1a;--hover-faint:#f9fafb0d;--brand-hover:#00837d;--brand-subtle:#061a20;--brand-subtle-hover:#0f242a;--focus-ring:#00958e99;--progress-start:#006261;--progress-end:#00958e;--info-surface:#21344c;--warning-surface:#45310b;--success-surface:#153524;--danger-surface:#541f20;--danger-surface-hover:#602a2a;--control-bg:#0a0e17;--scrim:#0009;--mega-menu-bg:#0a0e17;--mega-menu-scrim:#00000080;--app-shadow-sm:0 4px 12px #0000004d;--app-shadow-md:0 10px 28px #0000006b;--app-shadow-lg:0 20px 48px #0000008c;--app-opacity-disabled:.3}@supports (color:lab(0% 0 0)){[data-darkmode=true]{--bg:lab(1.93894% .0855997 -3.22397);--surface:lab(8.24713% -.0405461 -7.31381);--text:lab(98.252% -.0618994 -.756907);--brand:lab(55.0978% -44.5567 -7.62978);--on-brand:lab(100% 0 0);--link:lab(55.0978% -44.5567 -7.62978);--info:lab(76.3382% -4.43128 -38.7);--warning:lab(79.1996% 12.6808 55.9505);--success:lab(69.2339% -42.392 18.6731);--danger:lab(63.5705% 50.8105 25.3639);--text-muted:lab(60.5379% -.225931 -3.05105);--text-subtle:lab(40.6865% -.278354 -4.23647);--surface-sunken:lab(3.9802% .0812709 -5.64623);--surface-overlay:lab(10.5702% -.0939444 -7.33123);--hairline:lab(98.252% -.0618994 -.756907/.1);--hover-faint:lab(98.252% -.0618994 -.756907/.05);--brand-hover:lab(49.2976% -44.6964 -7.56882);--brand-subtle:lab(7.95734% -6.34954 -6.72844);--brand-subtle-hover:lab(12.602% -6.92477 -6.76408);--focus-ring:lab(55.0986% -44.5682 -7.59286/.6);--progress-start:lab(36.8833% -28.7182 -7.50749);--progress-end:lab(55.0978% -44.5567 -7.62978);--info-surface:lab(20.893% -1.69295 -17.5199);--warning-surface:lab(22.2973% 6.18184 26.7927);--success-surface:lab(19.4608% -16.2551 7.16286);--danger-surface:lab(20.3014% 25.4342 12.827);--danger-surface-hover:lab(24.9464% 25.3964 12.6412);--control-bg:lab(3.9802% .0812709 -5.64623);--scrim:lab(0% 0 0/.6);--mega-menu-bg:lab(3.9802% .0812709 -5.64623);--mega-menu-scrim:lab(0% 0 0/.5);--app-shadow-sm:0 4px 12px lab(0% 0 0/.3);--app-shadow-md:0 10px 28px lab(0% 0 0/.42);--app-shadow-lg:0 20px 48px lab(0% 0 0/.55)}}:root{--icon-activity:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M3%2012h4l3%208l4%20-16l3%208h4'%20/%3e%3c/svg%3e");--icon-adjustments:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M4%2010a2%202%200%201%200%204%200a2%202%200%200%200%20-4%200'%20/%3e%3cpath%20d='M6%204v4'%20/%3e%3cpath%20d='M6%2012v8'%20/%3e%3cpath%20d='M10%2016a2%202%200%201%200%204%200a2%202%200%200%200%20-4%200'%20/%3e%3cpath%20d='M12%204v10'%20/%3e%3cpath%20d='M12%2018v2'%20/%3e%3cpath%20d='M16%207a2%202%200%201%200%204%200a2%202%200%200%200%20-4%200'%20/%3e%3cpath%20d='M18%204v1'%20/%3e%3cpath%20d='M18%209v11'%20/%3e%3c/svg%3e");--icon-apps:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M4%205a1%201%200%200%201%201%20-1h4a1%201%200%200%201%201%201v4a1%201%200%200%201%20-1%201h-4a1%201%200%200%201%20-1%20-1l0%20-4'%20/%3e%3cpath%20d='M4%2015a1%201%200%200%201%201%20-1h4a1%201%200%200%201%201%201v4a1%201%200%200%201%20-1%201h-4a1%201%200%200%201%20-1%20-1l0%20-4'%20/%3e%3cpath%20d='M14%2015a1%201%200%200%201%201%20-1h4a1%201%200%200%201%201%201v4a1%201%200%200%201%20-1%201h-4a1%201%200%200%201%20-1%20-1l0%20-4'%20/%3e%3cpath%20d='M14%207l6%200'%20/%3e%3cpath%20d='M17%204l0%206'%20/%3e%3c/svg%3e");--icon-arrow-down:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2020%2020'%20width='24'%20height='24'%20fill='%23000000'%20style='opacity:1;'%3e%3cpath%20fill-rule='evenodd'%20d='M5.22%208.22a.75.75%200%200%201%201.06%200L10%2011.94l3.72-3.72a.75.75%200%201%201%201.06%201.06l-4.25%204.25a.75.75%200%200%201-1.06%200L5.22%209.28a.75.75%200%200%201%200-1.06'%20clip-rule='evenodd'/%3e%3c/svg%3e");--icon-arrow-down-dark:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2020%2020'%20width='24'%20height='24'%20fill='%23ffffff'%20style='opacity:1;'%3e%3cpath%20fill-rule='evenodd'%20d='M5.22%208.22a.75.75%200%200%201%201.06%200L10%2011.94l3.72-3.72a.75.75%200%201%201%201.06%201.06l-4.25%204.25a.75.75%200%200%201-1.06%200L5.22%209.28a.75.75%200%200%201%200-1.06'%20clip-rule='evenodd'/%3e%3c/svg%3e");--icon-arrow-right:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2020%2020'%20width='24'%20height='24'%20fill='%23000000'%20style='opacity:1;'%3e%3cpath%20fill-rule='evenodd'%20d='M8.22%205.22a.75.75%200%200%201%201.06%200l4.25%204.25a.75.75%200%200%201%200%201.06l-4.25%204.25a.75.75%200%200%201-1.06-1.06L11.94%2010L8.22%206.28a.75.75%200%200%201%200-1.06'%20clip-rule='evenodd'/%3e%3c/svg%3e");--icon-box:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M12%203l8%204.5l0%209l-8%204.5l-8%20-4.5l0%20-9l8%20-4.5'%20/%3e%3cpath%20d='M12%2012l8%20-4.5'%20/%3e%3cpath%20d='M12%2012l0%209'%20/%3e%3cpath%20d='M12%2012l-8%20-4.5'%20/%3e%3c/svg%3e");--icon-category:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M4%204h6v6h-6l0%20-6'%20/%3e%3cpath%20d='M14%204h6v6h-6l0%20-6'%20/%3e%3cpath%20d='M4%2014h6v6h-6l0%20-6'%20/%3e%3cpath%20d='M14%2017a3%203%200%201%200%206%200a3%203%200%201%200%20-6%200'%20/%3e%3c/svg%3e");--icon-chart-bar:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M3%2013a1%201%200%200%201%201%20-1h4a1%201%200%200%201%201%201v6a1%201%200%200%201%20-1%201h-4a1%201%200%200%201%20-1%20-1l0%20-6'%20/%3e%3cpath%20d='M15%209a1%201%200%200%201%201%20-1h4a1%201%200%200%201%201%201v10a1%201%200%200%201%20-1%201h-4a1%201%200%200%201%20-1%20-1l0%20-10'%20/%3e%3cpath%20d='M9%205a1%201%200%200%201%201%20-1h4a1%201%200%200%201%201%201v14a1%201%200%200%201%20-1%201h-4a1%201%200%200%201%20-1%20-1l0%20-14'%20/%3e%3cpath%20d='M4%2020h14'%20/%3e%3c/svg%3e");--icon-check:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%201024'%3e%3cpath%20d='M918.8%2083.7c-43.5-30.3-104-19.5-134.6%2024.1l-425.8%20606-127-135.7c-36.4-38.9-98.1-41.1-137-4.8-39%2036.2-41.1%2097.7-4.7%20136.6l206.5%20220.7c4.7%205%209.8%209.4%2015.1%2013.1.7.5%201.4%201%202.2%201.5%2043.5%2030.3%20104%2019.5%20134.6-24.1l494-703.2c30.7-43.5%2020.1-103.9-23.3-134.2z'/%3e%3c/svg%3e");--icon-cpu:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M5%206a1%201%200%200%201%201%20-1h12a1%201%200%200%201%201%201v12a1%201%200%200%201%20-1%201h-12a1%201%200%200%201%20-1%20-1l0%20-12'%20/%3e%3cpath%20d='M9%209h6v6h-6l0%20-6'%20/%3e%3cpath%20d='M3%2010h2'%20/%3e%3cpath%20d='M3%2014h2'%20/%3e%3cpath%20d='M10%203v2'%20/%3e%3cpath%20d='M14%203v2'%20/%3e%3cpath%20d='M21%2010h-2'%20/%3e%3cpath%20d='M21%2014h-2'%20/%3e%3cpath%20d='M14%2021v-2'%20/%3e%3cpath%20d='M10%2021v-2'%20/%3e%3c/svg%3e");--icon-error:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M12%209v4'%20/%3e%3cpath%20d='M10.363%203.591l-8.106%2013.534a1.914%201.914%200%200%200%201.636%202.871h16.214a1.914%201.914%200%200%200%201.636%20-2.87l-8.106%20-13.536a1.914%201.914%200%200%200%20-3.274%200'%20/%3e%3cpath%20d='M12%2016h.01'%20/%3e%3c/svg%3e");--icon-gauge:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M3%2012a9%209%200%201%200%2018%200a9%209%200%201%200%20-18%200'%20/%3e%3cpath%20d='M11%2012a1%201%200%201%200%202%200a1%201%200%201%200%20-2%200'%20/%3e%3cpath%20d='M13.41%2010.59l2.59%20-2.59'%20/%3e%3cpath%20d='M7%2012a5%205%200%200%201%205%20-5'%20/%3e%3c/svg%3e");--icon-info:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2016%2016'%20width='24'%20height='24'%20fill='%23000000'%20style='opacity:1;'%3e%3cpath%20fill-rule='evenodd'%20d='M15%208A7%207%200%201%201%201%208a7%207%200%200%201%2014%200M9%205a1%201%200%201%201-2%200a1%201%200%200%201%202%200M6.75%208a.75.75%200%200%200%200%201.5h.75v1.75a.75.75%200%200%200%201.5%200v-2.5A.75.75%200%200%200%208.25%208z'%20clip-rule='evenodd'/%3e%3c/svg%3e");--icon-package:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M12%203l8%204.5l0%209l-8%204.5l-8%20-4.5l0%20-9l8%20-4.5'%20/%3e%3cpath%20d='M12%2012l8%20-4.5'%20/%3e%3cpath%20d='M12%2012l0%209'%20/%3e%3cpath%20d='M12%2012l-8%20-4.5'%20/%3e%3cpath%20d='M16%205.25l-8%204.5'%20/%3e%3c/svg%3e");--icon-phone:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M5%204h4l2%205l-2.5%201.5a11%2011%200%200%200%205%205l1.5%20-2.5l5%202v4a2%202%200%200%201%20-2%202a16%2016%200%200%201%20-15%20-15a2%202%200%200%201%202%20-2'%20/%3e%3c/svg%3e");--icon-radio:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='currentColor'%3e%3ccircle%20cx='12'%20cy='12'%20r='6'/%3e%3c/svg%3e");--icon-refresh:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M20%2011a8.1%208.1%200%200%200%20-15.5%20-2m-.5%20-4v4h4'%20/%3e%3cpath%20d='M4%2013a8.1%208.1%200%200%200%2015.5%202m.5%204v-4h-4'%20/%3e%3c/svg%3e");--icon-refresh-off:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M20%2011a8.1%208.1%200%200%200%20-11.271%20-6.305m-2.41%201.624a8.083%208.083%200%200%200%20-1.819%202.681m-.5%20-4v4h4'%20/%3e%3cpath%20d='M4%2013a8.1%208.1%200%200%200%2013.671%204.691m2.329%20-1.691v-1h-1'%20/%3e%3cpath%20d='M3%203l18%2018'%20/%3e%3c/svg%3e");--icon-router:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M3%2015a2%202%200%200%201%202%20-2h14a2%202%200%200%201%202%202v4a2%202%200%200%201%20-2%202h-14a2%202%200%200%201%20-2%20-2l0%20-4'%20/%3e%3cpath%20d='M17%2017l0%20.01'%20/%3e%3cpath%20d='M13%2017l0%20.01'%20/%3e%3cpath%20d='M15%2013l0%20-2'%20/%3e%3cpath%20d='M11.75%208.75a4%204%200%200%201%206.5%200'%20/%3e%3cpath%20d='M8.5%206.5a8%208%200%200%201%2013%200'%20/%3e%3c/svg%3e");--icon-search:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M10%2010m-7%200a7%207%200%201%200%2014%200a7%207%200%201%200%20-14%200'%20/%3e%3cpath%20d='M21%2021l-6%20-6'%20/%3e%3c/svg%3e");--icon-server:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M3%207a3%203%200%200%201%203%20-3h12a3%203%200%200%201%203%203v2a3%203%200%200%201%20-3%203h-12a3%203%200%200%201%20-3%20-3v-2'%20/%3e%3cpath%20d='M3%2015a3%203%200%200%201%203%20-3h12a3%203%200%200%201%203%203v2a3%203%200%200%201%20-3%203h-12a3%203%200%200%201%20-3%20-3l0%20-2'%20/%3e%3cpath%20d='M7%208l0%20.01'%20/%3e%3cpath%20d='M7%2016l0%20.01'%20/%3e%3cpath%20d='M11%208h6'%20/%3e%3cpath%20d='M11%2016h6'%20/%3e%3c/svg%3e");--icon-settings:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M10.325%204.317c.426%20-1.756%202.924%20-1.756%203.35%200a1.724%201.724%200%200%200%202.573%201.066c1.543%20-.94%203.31%20.826%202.37%202.37a1.724%201.724%200%200%200%201.065%202.572c1.756%20.426%201.756%202.924%200%203.35a1.724%201.724%200%200%200%20-1.066%202.573c.94%201.543%20-.826%203.31%20-2.37%202.37a1.724%201.724%200%200%200%20-2.572%201.065c-.426%201.756%20-2.924%201.756%20-3.35%200a1.724%201.724%200%200%200%20-2.573%20-1.066c-1.543%20.94%20-3.31%20-.826%20-2.37%20-2.37a1.724%201.724%200%200%200%20-1.065%20-2.572c-1.756%20-.426%20-1.756%20-2.924%200%20-3.35a1.724%201.724%200%200%200%201.066%20-2.573c-.94%20-1.543%20.826%20-3.31%202.37%20-2.37c1%20.608%202.296%20.07%202.572%20-1.065'%20/%3e%3cpath%20d='M9%2012a3%203%200%201%200%206%200a3%203%200%200%200%20-6%200'%20/%3e%3c/svg%3e");--icon-shield:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M12%203a12%2012%200%200%200%208.5%203a12%2012%200%200%201%20-8.5%2015a12%2012%200%200%201%20-8.5%20-15a12%2012%200%200%200%208.5%20-3'%20/%3e%3c/svg%3e");--icon-spinning:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%201024'%3e%3cpath%20opacity='.05'%20d='M512%2085.333c235.648%200%20426.667%20191.019%20426.667%20426.667S747.648%20938.667%20512%20938.667%2085.333%20747.648%2085.333%20512%20276.352%2085.333%20512%2085.333zm0%20128a298.667%20298.667%200%201%200%200%20597.334%20298.667%20298.667%200%200%200%200-597.334z'/%3e%3cpath%20d='M813.696%20813.696c166.613-166.613%20166.613-436.779%200-603.392s-436.779-166.613-603.392%200a64%2064%200%200%200%2090.496%2090.496%20298.667%20298.667%200%201%201%20422.4%20422.4%2064%2064%200%200%200%2090.496%2090.496z'/%3e%3c/svg%3e");--icon-tag:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M6.5%207.5a1%201%200%201%200%202%200a1%201%200%201%200%20-2%200'%20/%3e%3cpath%20d='M3%206v5.172a2%202%200%200%200%20.586%201.414l7.71%207.71a2.41%202.41%200%200%200%203.408%200l5.592%20-5.592a2.41%202.41%200%200%200%200%20-3.408l-7.71%20-7.71a2%202%200%200%200%20-1.414%20-.586h-5.172a3%203%200%200%200%20-3%203'%20/%3e%3c/svg%3e");--icon-world:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M3%2012a9%209%200%201%200%2018%200a9%209%200%200%200%20-18%200'%20/%3e%3cpath%20d='M3.6%209h16.8'%20/%3e%3cpath%20d='M3.6%2015h16.8'%20/%3e%3cpath%20d='M11.5%203a17%2017%200%200%200%200%2018'%20/%3e%3cpath%20d='M12.5%203a17%2017%200%200%201%200%2018'%20/%3e%3c/svg%3e");--icon-x:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M18%206l-12%2012'%20/%3e%3cpath%20d='M6%206l12%2012'%20/%3e%3c/svg%3e")}html{background-color:var(--bg);min-height:100dvh;font-family:var(--font-sans)}html body{background-color:var(--bg);min-height:100dvh}:not(html){scrollbar-width:thin;scrollbar-color:var(--text-muted) transparent}html{scrollbar-width:thin;scrollbar-color:var(--text-muted) var(--surface)}html body{min-height:100dvh;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed);--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal);color:var(--text);flex-direction:column;display:flex;position:relative}html body.modal-overlay-active{height:100vh;overflow:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);--tw-leading:var(--leading-tight);line-height:var(--leading-tight);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight);color:var(--text)}h1{margin-bottom:calc(var(--spacing) * 4);padding-left:calc(var(--spacing) * 6);font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}@media not all and (min-width:48rem){h1{padding-left:calc(var(--spacing) * 4);font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}}h2{margin-bottom:calc(var(--spacing) * 4);padding-left:calc(var(--spacing) * 5);font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}@media not all and (min-width:48rem){h2{margin-bottom:calc(var(--spacing) * 2);padding-left:calc(var(--spacing) * 4);font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}}h3{margin-bottom:calc(var(--spacing) * 4);font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}@media not all and (min-width:48rem){h3{margin-bottom:calc(var(--spacing) * 2);font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}}h4{margin-bottom:calc(var(--spacing) * 2);font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}@media not all and (min-width:48rem){h4{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}}h5{margin-bottom:calc(var(--spacing) * 2);font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}@media not all and (min-width:48rem){h5{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}h6{margin-bottom:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}@media not all and (min-width:48rem){h6{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}}hr{border-style:var(--tw-border-style);border-width:0}strong{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}abbr{cursor:help}p{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed);color:var(--text)}pre{border-radius:calc(var(--radius-base) * 1.5);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface-sunken);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed);overflow-wrap:break-word;white-space:pre-wrap;color:var(--text-muted);display:block}code{border-radius:calc(var(--radius-base) * .5);background-color:var(--surface-sunken);padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing);font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--text-muted)}a{color:var(--link);text-decoration-line:none}@media (hover:hover){a:hover{text-decoration-line:underline}}var{font-family:var(--font-mono);color:var(--link)}small{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal);color:var(--text)}em{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--text-muted);font-style:italic}header{z-index:40;margin-bottom:calc(var(--spacing) * 2);background-color:var(--bg);position:sticky;top:0}header .header-content{z-index:10;height:calc(var(--spacing) * 14);padding-inline:calc(var(--spacing) * 6);padding-block:calc(var(--spacing) * 3);justify-content:space-between;align-items:center;display:flex;position:relative}@media not all and (min-width:48rem){header .header-content{padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2)}}[data-nav-type=mega-menu] :is(header) .desktop-menu-container{pointer-events:none;visibility:hidden;z-index:0;height:calc(var(--mega-menu-height,0px) + 3.5rem + 3rem);inset-inline:0;width:100%;position:absolute;top:0;overflow:clip}@media not all and (min-width:48rem){[data-nav-type=mega-menu] :is(header) .desktop-menu-container{display:none}}[data-nav-type=mega-menu] :is(header) .desktop-menu-container.active,[data-nav-type=mega-menu] :is(header) .desktop-menu-container.closing{visibility:visible}[data-nav-type=mega-menu] :is(header) .desktop-menu-container.active{pointer-events:auto}[data-nav-type=mega-menu] :is(header) .desktop-menu-container.closing{opacity:0;transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.22s;--tw-ease:cubic-bezier(.4,0,.6,1);transition-duration:.22s;transition-timing-function:cubic-bezier(.4,0,.6,1)}@media (prefers-reduced-motion:reduce){[data-nav-type=mega-menu] :is(header) .desktop-menu-container.closing{transition-property:none}}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-menu-sheet{height:calc(var(--mega-menu-height,0px) + 3.5rem);--tw-translate-y:-100%;translate:var(--tw-translate-x) var(--tw-translate-y);background-color:var(--mega-menu-bg);transition-property:translate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:var(--mega-menu-duration,.3s);transition-duration:var(--mega-menu-duration,.3s);--tw-ease:cubic-bezier(.4,0,.6,1);inset-inline:0;transition-timing-function:cubic-bezier(.4,0,.6,1);position:absolute;top:0;overflow:hidden}@media (prefers-reduced-motion:reduce){[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-menu-sheet{transition-property:none}}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-menu-sheet:after{content:var(--tw-content);pointer-events:none;content:var(--tw-content);content:var(--tw-content);content:var(--tw-content);border-bottom-style:var(--tw-border-style);content:var(--tw-content);border-bottom-width:1px;border-color:var(--hairline);content:var(--tw-content);--tw-shadow:var(--app-shadow-lg);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);content:var(--tw-content);transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));content:var(--tw-content);--tw-duration:var(--mega-menu-duration,.3s);transition-duration:var(--mega-menu-duration,.3s);--tw-content:"";content:var(--tw-content);position:absolute;inset:0}@media (prefers-reduced-motion:reduce){[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-menu-sheet:after{content:var(--tw-content);transition-property:none}}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-menu-canvas{--tw-translate-y:100%;translate:var(--tw-translate-x) var(--tw-translate-y);transition-property:translate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:var(--mega-menu-duration,.3s);transition-duration:var(--mega-menu-duration,.3s);--tw-ease:cubic-bezier(.4,0,.6,1);transition-timing-function:cubic-bezier(.4,0,.6,1);position:absolute;inset:0}@media (prefers-reduced-motion:reduce){[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-menu-canvas{transition-property:none}}[data-nav-type=mega-menu] :is(header) .desktop-menu-container.active .desktop-menu-sheet,[data-nav-type=mega-menu] :is(header) .desktop-menu-container.active .desktop-menu-canvas{--tw-translate-y:0;translate:var(--tw-translate-x) var(--tw-translate-y)}[data-nav-type=mega-menu] :is(header) .desktop-menu-container.closing .desktop-menu-sheet:after{content:var(--tw-content);opacity:0}[data-nav-type=mega-menu] :is(header) .desktop-menu-container>.desktop-menu-board{display:none}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav{pointer-events:none;inset-inline:0;top:calc(var(--spacing) * 14);--tw-translate-y:calc(var(--spacing) * 1.5);max-width:72rem;max-height:calc(100dvh - 3.5rem);translate:var(--tw-translate-x) var(--tw-translate-y);column-gap:calc(var(--spacing) * 8);overscroll-behavior:contain;padding-inline:calc(var(--spacing) * 10);padding-top:calc(var(--spacing) * 13);padding-bottom:calc(var(--spacing) * 8);opacity:0;transition-property:opacity,translate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.25s;--tw-ease:var(--ease-out);transition-duration:.25s;transition-timing-function:var(--ease-out);grid-template-columns:12rem minmax(0,1fr) 13rem;margin-inline:auto;display:grid;position:absolute;overflow-y:auto}@media not all and (min-width:64rem){[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav{max-width:44rem;padding-inline:calc(var(--spacing) * 8);grid-template-columns:repeat(1,minmax(0,1fr))}}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav.active{pointer-events:auto;--tw-translate-y:0;translate:var(--tw-translate-x) var(--tw-translate-y);opacity:1}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-nav-anchor{align-self:flex-start}@media not all and (min-width:64rem){[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-nav-anchor{display:none}}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-nav-anchor .desktop-nav-title{align-items:center;gap:calc(var(--spacing) * 2.5);font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight);color:var(--text);display:flex}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-nav-anchor .desktop-nav-title:before{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6);--tw-content:"";content:var(--tw-content);-webkit-mask:var(--menu-icon,var(--icon-category)) center/contain no-repeat;-webkit-mask:var(--menu-icon,var(--icon-category)) center/contain no-repeat;-webkit-mask:var(--menu-icon,var(--icon-category)) center/contain no-repeat;mask:var(--menu-icon,var(--icon-category)) center/contain no-repeat;background-color:currentColor;flex-shrink:0}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-nav-list{grid-auto-flow:column;grid-template-rows:repeat(var(--menu-rows,6),auto);place-content:flex-start;column-gap:calc(var(--spacing) * 8);row-gap:var(--spacing);display:grid}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-nav-list>li{margin:0;list-style-type:none}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-nav-list>li>a{border-radius:calc(var(--radius-base) * 1.5);width:fit-content;padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));white-space:nowrap;color:var(--text);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;text-decoration-line:none;transition-duration:.15s;display:block}@media (hover:hover){[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-nav-list>li>a:hover{background-color:var(--hover-faint)}}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-nav-list>li>a.is-active-page{background-color:var(--brand-subtle);--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--brand)}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-menu-board{gap:calc(var(--spacing) * 2);border-left-style:var(--tw-border-style);border-left-width:1px;border-color:var(--hairline);padding-left:calc(var(--spacing) * 7);flex-direction:column;align-self:flex-start;display:flex}@media not all and (min-width:64rem){[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-menu-board{display:none}}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-menu-board .board-label{margin-bottom:calc(var(--spacing) * .5);--tw-font-weight:var(--font-weight-medium);font-size:11px;font-weight:var(--font-weight-medium);--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide);color:var(--text-subtle);text-transform:uppercase}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-menu-board .board-line{align-items:flex-start;gap:calc(var(--spacing) * 2.5);max-width:100%;font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--text-muted);display:flex}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-menu-board .board-line:before{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4);--tw-content:"";content:var(--tw-content);background-color:currentColor;flex-shrink:0}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-menu-board .board-line .board-text{--tw-leading:calc(var(--spacing) * 4);min-width:0;line-height:calc(var(--spacing) * 4);overflow-wrap:anywhere}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-menu-board .board-line-host:before{-webkit-mask:var(--icon-router) center/contain no-repeat;-webkit-mask:var(--icon-router) center/contain no-repeat;-webkit-mask:var(--icon-router) center/contain no-repeat;mask:var(--icon-router) center/contain no-repeat}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-menu-board .board-line-model:before{-webkit-mask:var(--icon-cpu) center/contain no-repeat;-webkit-mask:var(--icon-cpu) center/contain no-repeat;-webkit-mask:var(--icon-cpu) center/contain no-repeat;mask:var(--icon-cpu) center/contain no-repeat}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-menu-board .board-line-firmware:before{-webkit-mask:var(--icon-package) center/contain no-repeat;-webkit-mask:var(--icon-package) center/contain no-repeat;-webkit-mask:var(--icon-package) center/contain no-repeat;mask:var(--icon-package) center/contain no-repeat}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-menu-board .board-line-kernel:before{-webkit-mask:var(--icon-tag) center/contain no-repeat;-webkit-mask:var(--icon-tag) center/contain no-repeat;-webkit-mask:var(--icon-tag) center/contain no-repeat;mask:var(--icon-tag) center/contain no-repeat}[data-nav-type=mega-menu] :is(header):has(.desktop-menu-container:is(.active,.closing)){z-index:70}header .brand{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight);color:var(--text);transition-property:color,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;flex-shrink:0;text-decoration-line:none;transition-duration:.15s;display:inline-block}@media (hover:hover){header .brand:hover{--tw-translate-y:calc(var(--spacing) * -.5);translate:var(--tw-translate-x) var(--tw-translate-y);color:var(--brand)}}@media not all and (min-width:48rem){header .brand{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));flex:1}}@media (min-width:48rem){[data-nav-type=sidebar] :is(header .brand){display:none}[data-nav-type=sidebar].sidebar-collapsed :is(header .brand){transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;transition-duration:.15s;display:inline-block}@starting-style{[data-nav-type=sidebar].sidebar-collapsed :is(header .brand){opacity:0}}}header .nav{z-index:60;--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y);transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);align-items:center;gap:var(--spacing);margin:0;padding:0;list-style-type:none;display:flex;position:absolute;left:50%}@media not all and (min-width:48rem){header .nav{display:none}}header .nav>li{position:relative}header .nav>li .menu{border-radius:calc(var(--radius-base) * 1.5);padding-inline:calc(var(--spacing) * 3.5);padding-block:calc(var(--spacing) * 1.5);--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--text);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;text-decoration-line:none;transition-duration:.15s;display:block}@media (hover:hover){header .nav>li .menu:hover{background-color:var(--hover-faint)}}header .nav>li .menu.menu-active{background-color:var(--brand-subtle);color:var(--brand)}header .nav>li .desktop-nav{pointer-events:none;z-index:40;opacity:0;transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;padding-inline:0;padding-top:0;transition-duration:.15s;left:0}[data-nav-type=dropdown] :is(header .nav>li .desktop-nav){margin-top:calc(var(--spacing) * 2);min-width:calc(var(--spacing) * 48);position:absolute;top:100%}header .nav>li .desktop-nav.active{pointer-events:auto;opacity:1}[data-nav-type=dropdown] :is(header .nav>li .desktop-nav .desktop-nav-list){row-gap:var(--spacing);border-radius:calc(var(--radius-base) * 3);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface-overlay);padding-block:calc(var(--spacing) * 2);--tw-shadow:var(--app-shadow-md);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-backdrop-blur:blur(var(--blur-md));--tw-backdrop-saturate:saturate(150%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);flex-direction:column;display:flex}header .nav>li .desktop-nav .desktop-nav-list>li{margin:0;list-style-type:none}header .nav>li .desktop-nav .desktop-nav-list>li>a{white-space:nowrap;color:var(--text);text-decoration-line:none;display:block}[data-nav-type=dropdown] :is(header .nav>li .desktop-nav .desktop-nav-list>li>a){margin-inline:calc(var(--spacing) * 2);border-radius:calc(var(--radius-base) * 1.5);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;transition-duration:.15s}@media (hover:hover){[data-nav-type=dropdown] :is(header .nav>li .desktop-nav .desktop-nav-list>li>a):hover{background-color:var(--hover-faint)}}header .nav>li .desktop-nav .desktop-nav-list>li>a.is-active-page{background-color:var(--brand-subtle);--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--brand)}header .navigation-controls{margin-right:calc(var(--spacing) * 3);flex-shrink:0;align-items:center;display:flex}@media (min-width:48rem){header .navigation-controls{display:none}[data-nav-type=sidebar] :is(header .navigation-controls){display:flex}[data-nav-type=sidebar]:not(.sidebar-collapsed) :is(header .navigation-controls) .navigation-toggle-line-bottom{stroke-dasharray:15 15}}header .navigation-controls .navigation-toggle{cursor:pointer;border-style:var(--tw-border-style);--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;background-color:#0000;border-width:0;border-radius:0;padding:0;transition-duration:.15s}@media (hover:hover){header .navigation-controls .navigation-toggle:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}}header .navigation-controls .navigation-toggle:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}header .navigation-controls .navigation-toggle svg{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5);color:var(--text)}header .navigation-controls .navigation-toggle .navigation-toggle-line{transform-box:fill-box;transform-origin:50%;transition-property:transform,opacity,stroke-dasharray;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;--tw-ease:var(--ease-in-out);transition-duration:.15s;transition-timing-function:var(--ease-in-out)}@media (min-width:48rem){[data-nav-type=sidebar] :is(header .navigation-controls .navigation-toggle .navigation-toggle-line){--tw-duration:.25s;transition-duration:.25s}}header .navigation-controls .navigation-toggle .navigation-toggle-line-bottom{stroke-dasharray:7.5 15}header .navigation-controls .navigation-toggle.is-expanded .navigation-toggle-line-top{transform:translateY(5px)rotate(45deg)}header .navigation-controls .navigation-toggle.is-expanded .navigation-toggle-line-middle{opacity:0;transform:scaleX(.35)}header .navigation-controls .navigation-toggle.is-expanded .navigation-toggle-line-bottom{stroke-dasharray:15 15;transform:translateY(-5px)rotate(-45deg)}header #indicators{gap:calc(var(--spacing) * 5);flex-direction:row-reverse;flex-shrink:0;display:flex}@media (min-width:48rem){header #indicators{gap:calc(var(--spacing) * 8)}}header #indicators span[data-indicator]{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5);cursor:pointer;transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;font-size:0;transition-duration:.15s}header #indicators span[data-indicator]:before{content:var(--tw-content);content:var(--tw-content);width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5);content:var(--tw-content);content:var(--tw-content);color:var(--text);background-color:currentColor;position:absolute}@media (hover:hover){header #indicators span[data-indicator]:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}}header #indicators span[data-indicator]:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}header #indicators span[data-indicator][data-indicator=media_error]:before{content:var(--tw-content);-webkit-mask:var(--icon-error) center/cover no-repeat;-webkit-mask:var(--icon-error) center/cover no-repeat;-webkit-mask:var(--icon-error) center/cover no-repeat;mask:var(--icon-error) center/cover no-repeat}header #indicators span[data-indicator][data-indicator=poll-status][data-style=active]:before{content:var(--tw-content);-webkit-mask:var(--icon-refresh) center/cover no-repeat;-webkit-mask:var(--icon-refresh) center/cover no-repeat;-webkit-mask:var(--icon-refresh) center/cover no-repeat;mask:var(--icon-refresh) center/cover no-repeat}header #indicators span[data-indicator][data-indicator=poll-status][data-style=inactive]:before{content:var(--tw-content);-webkit-mask:var(--icon-refresh-off) center/cover no-repeat;-webkit-mask:var(--icon-refresh-off) center/cover no-repeat;-webkit-mask:var(--icon-refresh-off) center/cover no-repeat;mask:var(--icon-refresh-off) center/cover no-repeat}header #indicators span[data-indicator][data-indicator=uci-changes]{position:relative}header #indicators span[data-indicator][data-indicator=uci-changes]:before{content:var(--tw-content);-webkit-mask:var(--icon-settings) center/cover no-repeat;-webkit-mask:var(--icon-settings) center/cover no-repeat;-webkit-mask:var(--icon-settings) center/cover no-repeat;mask:var(--icon-settings) center/cover no-repeat}header #indicators span[data-indicator][data-indicator=uci-changes][data-count]:not([data-count="0"]):after{content:var(--tw-content);content:var(--tw-content);top:calc(var(--spacing) * -.5);content:var(--tw-content);right:calc(var(--spacing) * -.5);content:var(--tw-content);z-index:10;content:var(--tw-content);content:var(--tw-content);min-height:calc(var(--spacing) * 3);content:var(--tw-content);min-width:calc(var(--spacing) * 3);content:var(--tw-content);content:var(--tw-content);content:var(--tw-content);content:var(--tw-content);background-color:var(--danger);content:var(--tw-content);padding-inline:calc(var(--spacing) * .5);content:var(--tw-content);content:var(--tw-content);--tw-leading:1;content:var(--tw-content);--tw-font-weight:var(--font-weight-bold);font-size:8px;line-height:1;font-weight:var(--font-weight-bold);content:var(--tw-content);color:var(--on-brand);content:var(--tw-content);--tw-shadow:var(--app-shadow-sm);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-content:attr(data-count);content:var(--tw-content);border-radius:3.40282e38px;justify-content:center;align-items:center;display:flex;position:absolute}body[data-nav-type=sidebar]{--sidebar-w-full:17rem;--sidebar-w:var(--sidebar-w-full)}@media (min-width:48rem){body[data-nav-type=sidebar]{grid-template-columns:var(--sidebar-w) minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);display:grid;overflow-x:clip}body[data-nav-type=sidebar].sidebar-collapsed{--sidebar-w:0rem}body[data-nav-type=sidebar]>header{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--hairline);grid-row-start:1;grid-column-start:2;margin-bottom:0}body[data-nav-type=sidebar]>.sidebar-panel{grid-row:1/span 2;grid-column-start:1}body[data-nav-type=sidebar]>#maincontent{min-width:0;padding-top:calc(var(--spacing) * 2);width:100%;max-width:none;padding-inline:calc(var(--spacing) * 8);grid-row-start:2;grid-column-start:2}}body[data-nav-type=sidebar] .header-crumb{align-items:center;gap:calc(var(--spacing) * 2);min-width:0;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--text-muted);margin-block:0;margin-left:0;margin-right:auto;padding:0;list-style-type:none;display:none;overflow:hidden}@media (min-width:48rem){body[data-nav-type=sidebar] .header-crumb{display:flex}}body[data-nav-type=sidebar] .header-crumb li{white-space:nowrap;margin:0;list-style-type:none}body[data-nav-type=sidebar] .header-crumb .crumb-sep{opacity:.5}body[data-nav-type=sidebar] .header-crumb .current{text-overflow:ellipsis;white-space:nowrap;--tw-font-weight:var(--font-weight-medium);min-width:0;font-weight:var(--font-weight-medium);color:var(--text);overflow:hidden}@media (min-width:48rem){body[data-nav-type=sidebar].sidebar-collapsed .header-crumb{margin-left:calc(var(--spacing) * 6)}}body[data-nav-type=sidebar] .sidebar-panel{border-radius:0;width:100%;height:100dvh;display:none;position:sticky;top:0;overflow:hidden}@media (min-width:48rem){body[data-nav-type=sidebar] .sidebar-panel{display:block}}body[data-nav-type=sidebar].sidebar-collapsed .sidebar-panel{visibility:hidden}body[data-nav-type=sidebar] .sidebar-panel-inner{height:100%;width:var(--sidebar-w-full);border-right-style:var(--tw-border-style);border-right-width:1px;border-color:var(--hairline);background-color:var(--bg);flex-direction:column;display:flex;overflow:hidden}body[data-nav-type=sidebar].sidebar-collapsed .sidebar-panel-inner{--tw-translate-x:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}@media (min-width:48rem){body[data-nav-type=sidebar].sidebar-anim-open>header,body[data-nav-type=sidebar].sidebar-anim-open>#maincontent,body[data-nav-type=sidebar].sidebar-anim-open .sidebar-panel-inner{animation:sidebar-run-in .25s var(--ease-in-out) both}body[data-nav-type=sidebar].sidebar-anim-close>header,body[data-nav-type=sidebar].sidebar-anim-close>#maincontent{animation:sidebar-run-back .25s var(--ease-in-out) both}body[data-nav-type=sidebar].sidebar-anim-close .sidebar-panel{visibility:visible;width:var(--sidebar-w-full);position:fixed;top:0;left:0}body[data-nav-type=sidebar].sidebar-anim-close .sidebar-panel-inner{animation:sidebar-run-out .25s var(--ease-in-out) both}}body[data-nav-type=sidebar] .sidebar-head{box-sizing:content-box;height:calc(var(--spacing) * 14);align-items:center;gap:calc(var(--spacing) * 2.5);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--hairline);padding-inline:calc(var(--spacing) * 4);flex-shrink:0;display:flex}body[data-nav-type=sidebar] .sidebar-head .sidebar-logo{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5);border-radius:calc(var(--radius-base) * .75);flex-shrink:0}body[data-nav-type=sidebar] .sidebar-head .sidebar-brand{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight);color:var(--text);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;flex:1;text-decoration-line:none;transition-duration:.15s;overflow:hidden}@media (hover:hover){body[data-nav-type=sidebar] .sidebar-head .sidebar-brand:hover{color:var(--brand)}}body[data-nav-type=sidebar] .sidebar-list{flex:1;margin:0;list-style-type:none}:where(body[data-nav-type=sidebar] .sidebar-list>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}body[data-nav-type=sidebar] .sidebar-list{padding:calc(var(--spacing) * 3);overflow-y:auto}body[data-nav-type=sidebar] .sidebar-list li{margin:0;list-style-type:none}body[data-nav-type=sidebar] .sidebar-list .navigation-direct{text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));overflow:hidden}body[data-nav-type=sidebar] .sidebar-submenu{min-height:0;margin:0;list-style-type:none}:where(body[data-nav-type=sidebar] .sidebar-submenu>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}body[data-nav-type=sidebar] .sidebar-submenu{padding:0;padding-left:calc(var(--spacing) * 4);overflow:hidden}body[data-nav-type=sidebar] .sidebar-submenu .navigation-sublink{padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 1.5);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}body[data-nav-type=sidebar] .sidebar-footer{border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--hairline);padding:calc(var(--spacing) * 3);flex-shrink:0}body[data-nav-type=sidebar] .sidebar-footer .nav-link{color:var(--text-muted)}@media (hover:hover){body[data-nav-type=sidebar] .sidebar-footer .nav-link:hover{color:var(--text)}}@keyframes sidebar-run-in{0%{translate:calc(-1 * var(--sidebar-w-full)) 0}}@keyframes sidebar-run-back{0%{translate:var(--sidebar-w-full) 0}}@keyframes sidebar-run-out{to{translate:calc(-1 * var(--sidebar-w-full)) 0}}#maincontent{width:95.8333%;min-height:calc(100vh - 4rem);max-width:var(--content-width-centered);padding-inline:calc(var(--spacing) * 4);margin-inline:auto}@media not all and (min-width:48rem){#maincontent{width:100%;padding-inline:calc(var(--spacing) * 3)}}#maincontent #view{--tw-shadow:0 0 #0000;width:100%;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);background-color:#0000;margin-inline:0;padding:0}#maincontent #view:empty{display:none}@media (min-width:48rem){#maincontent #view{padding:0}}#maincontent #view .cbi-title-section{margin-bottom:calc(var(--spacing) * 6);--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}@media not all and (min-width:48rem){#maincontent #view .cbi-title-section{margin-inline:calc(var(--spacing) * 2);margin-bottom:calc(var(--spacing) * 3)}}#maincontent #view .controls{margin:calc(var(--spacing) * 2);align-items:center;gap:calc(var(--spacing) * 3);flex-wrap:wrap;display:flex}@media not all and (min-width:48rem){#maincontent #view .controls{margin:var(--spacing);gap:calc(var(--spacing) * 2)}}#maincontent #view .controls label input[type=radio],#maincontent #view .controls label input[type=checkbox]{margin-right:var(--spacing);vertical-align:middle}#maincontent #view #content_syslog{margin:calc(var(--spacing) * 2)}@media not all and (min-width:48rem){#maincontent #view #content_syslog{margin:var(--spacing)}}#maincontent #view #content_syslog>div{align-items:baseline;column-gap:calc(var(--spacing) * 2);flex-wrap:wrap;display:flex}@media not all and (min-width:48rem){#maincontent #view #content_syslog>div{column-gap:calc(var(--spacing) * 1.5)}#maincontent #view #content_syslog>div>.cbi-input-select,#maincontent #view #content_syslog>div>.cbi-input-text{min-width:calc(var(--spacing) * 45)}}#maincontent #view div[style]>svg:where([data-darkmode=true],[data-darkmode=true] *){background-color:var(--surface)!important}#maincontent #view div[style]>svg line[style]:where([data-darkmode=true],[data-darkmode=true] *){stroke:var(--text)!important}#maincontent .cbi-map-descr,#maincontent .cbi-section-descr{margin-bottom:calc(var(--spacing) * 6);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed);color:var(--text-muted)}@media not all and (min-width:48rem){#maincontent .cbi-map-descr,#maincontent .cbi-section-descr{margin-inline:calc(var(--spacing) * 2);margin-bottom:calc(var(--spacing) * 3);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}#maincontent .cbi-page-actions{margin-top:calc(var(--spacing) * 6);justify-content:flex-end;align-items:center;gap:calc(var(--spacing) * 3);border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--hairline);padding-top:calc(var(--spacing) * 4);flex-wrap:wrap;display:flex}@media not all and (min-width:48rem){#maincontent .cbi-page-actions{margin-inline:calc(var(--spacing) * 2);margin-top:calc(var(--spacing) * 4);gap:calc(var(--spacing) * 2);padding-top:calc(var(--spacing) * 3)}}#maincontent .zone-forwards{align-items:stretch;gap:calc(var(--spacing) * 2);--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed);flex-wrap:nowrap;display:flex}#maincontent .zone-forwards>span{flex-shrink:0;flex-basis:calc(var(--spacing) * 8);color:var(--text-muted);justify-content:center;align-self:center;align-items:center;display:flex}#maincontent .zone-forwards .zone-src,#maincontent .zone-forwards .zone-dest{gap:calc(var(--spacing) * 1.5);flex-direction:column;flex:1;display:flex}#maincontent #syslog,#maincontent #log_textarea{width:100%;font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}#maincontent #syslog{border-radius:calc(var(--radius-base) * 3);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface-sunken);padding:calc(var(--spacing) * 6);color:var(--text);--tw-shadow:var(--app-shadow-md);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}@media not all and (min-width:48rem){#maincontent #syslog{padding:calc(var(--spacing) * 3)}}footer{margin-top:calc(var(--spacing) * 2);min-height:calc(var(--spacing) * 16);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}footer a{color:var(--brand)}footer span{text-align:center;display:inline-block}footer .breadcrumb{align-items:center;gap:var(--spacing);background-color:var(--surface-overlay);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 1.5);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-shadow:var(--app-shadow-sm);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-backdrop-blur:blur(var(--blur-md));--tw-backdrop-saturate:saturate(150%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;border-radius:3.40282e38px;transition-duration:.15s;display:flex}@media (hover:hover){footer .breadcrumb:hover{background-color:var(--surface)}}footer .breadcrumb li{list-style-type:none}footer .breadcrumb li.active a{color:var(--text)}.control-group{margin-top:var(--spacing)}.control-group,.cbi-page-actions>div,.cbi-section-actions>div{align-items:center;gap:calc(var(--spacing) * 2);flex-flow:row;display:flex}@media not all and (min-width:48rem){.control-group,.cbi-page-actions>div,.cbi-section-actions>div{gap:var(--spacing);flex-wrap:wrap}}.nav-link{border-radius:calc(var(--radius-base) * 1.5);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 1.5);color:var(--text);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;text-decoration-line:none;transition-duration:.15s;display:block}@media (hover:hover){.nav-link:hover{background-color:var(--hover-faint);text-decoration-line:none}}.navigation-direct{color:var(--text)}@media (hover:hover){.navigation-direct:hover{color:var(--text)}}.navigation-direct.is-active-page{background-color:var(--brand-subtle);--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--brand)}@media (hover:hover){.navigation-direct.is-active-page:hover{color:var(--brand)}}.nav-category{cursor:pointer;appearance:none;align-items:center;gap:calc(var(--spacing) * 2);border-radius:var(--radius-base);border-style:var(--tw-border-style);width:100%;padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);text-align:left;font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide);color:var(--text-muted);--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;-webkit-user-select:none;user-select:none;background-color:#0000;border-width:0;transition-duration:.15s;display:flex}@media (hover:hover){.nav-category:hover{color:var(--text)}}.nav-category:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-ring-color:var(--focus-ring);--tw-outline-style:none;outline-style:none}.navigation-group-toggle:after{content:var(--tw-content);width:calc(var(--spacing) * 4.5);height:calc(var(--spacing) * 4.5);content:var(--tw-content);content:var(--tw-content);content:var(--tw-content);opacity:.55;content:var(--tw-content);transition-property:transform,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));content:var(--tw-content);--tw-duration:.25s;--tw-content:"";content:var(--tw-content);content:var(--tw-content);-webkit-mask:var(--icon-arrow-right) center/cover no-repeat;-webkit-mask:var(--icon-arrow-right) center/cover no-repeat;-webkit-mask:var(--icon-arrow-right) center/cover no-repeat;mask:var(--icon-arrow-right) center/cover no-repeat;background-color:currentColor;flex-shrink:0;transition-duration:.25s}@media (hover:hover){.navigation-group-toggle:hover:after{content:var(--tw-content);opacity:1}}.nav-category-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.navigation-group.is-expanded>.navigation-group-toggle{color:var(--brand)}.navigation-group.is-expanded>.navigation-group-toggle:after{content:var(--tw-content);rotate:90deg}.navigation-group.is-active-group>.navigation-group-toggle{color:var(--brand)}.navigation-group-region{opacity:0;transition-property:grid-template-rows,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.25s;--tw-ease:var(--ease-out);transition-duration:.25s;transition-timing-function:var(--ease-out);grid-template-rows:0fr;display:grid}.navigation-group.is-expanded>.navigation-group-region{opacity:1;grid-template-rows:1fr}.navigation-submenu-list{min-height:0;list-style-type:none;overflow:hidden}.navigation-sublink{border-radius:calc(var(--radius-base) * 1.5);--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--text-muted);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;text-decoration-line:none;transition-duration:.15s;display:flex;position:relative}@media (hover:hover){.navigation-sublink:hover{background-color:var(--hover-faint);color:var(--text)}}.navigation-sublink.is-active-page{background-color:var(--brand-subtle);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--brand)}@media (hover:hover){.navigation-sublink.is-active-page:hover{color:var(--brand)}}.nav-category-preview{text-overflow:ellipsis;white-space:nowrap;padding-bottom:var(--spacing);color:var(--text-subtle);overflow:hidden}.nav-category-preview .nav-preview-current{color:var(--brand)}.desktop-nav-title[data-section=status]{--menu-icon:var(--icon-activity)}.desktop-nav-title[data-section=statistics]{--menu-icon:var(--icon-chart-bar)}.desktop-nav-title[data-section=nlbw]{--menu-icon:var(--icon-gauge)}.desktop-nav-title[data-section=system]{--menu-icon:var(--icon-settings)}.desktop-nav-title[data-section=services]{--menu-icon:var(--icon-apps)}.desktop-nav-title[data-section=nas]{--menu-icon:var(--icon-server)}.desktop-nav-title[data-section=control]{--menu-icon:var(--icon-adjustments)}.desktop-nav-title[data-section=network]{--menu-icon:var(--icon-world)}.desktop-nav-title[data-section=vpn]{--menu-icon:var(--icon-shield)}.desktop-nav-title[data-section=docker]{--menu-icon:var(--icon-box)}.desktop-nav-title[data-section=asterisk]{--menu-icon:var(--icon-phone)}.theme-switcher{background-color:var(--surface-sunken);--tw-shadow:var(--app-shadow-sm);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;border-radius:3.40282e38px;align-items:center;gap:0;transition-duration:.15s;display:inline-flex;position:relative}@media not all and (min-width:48rem){.theme-switcher{padding-block:calc(var(--spacing) * .5)}}.theme-switcher{border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline)}.theme-switcher:before{content:var(--tw-content);content:var(--tw-content);top:var(--spacing);content:var(--tw-content);left:var(--spacing);content:var(--tw-content);z-index:0;content:var(--tw-content);content:var(--tw-content);content:var(--tw-content);content:var(--tw-content);background-color:var(--surface-overlay);content:var(--tw-content);--tw-shadow:var(--app-shadow-md);width:calc(33.333% - .5rem);height:calc(100% - .5rem);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);content:var(--tw-content);transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));content:var(--tw-content);--tw-duration:.25s;border-radius:3.40282e38px;transition-duration:.25s;position:absolute}@media not all and (min-width:48rem){footer .theme-switcher{display:none}}.theme-switcher .theme-option{z-index:10;cursor:pointer;justify-content:center;align-items:center;gap:calc(var(--spacing) * 1.5);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 1.5);transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;border-radius:3.40282e38px;transition-duration:.15s;display:flex;position:relative}@media (hover:hover){.theme-switcher .theme-option:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}}.theme-switcher .theme-option:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.theme-switcher .theme-option input[type=radio]{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.theme-switcher .theme-option .theme-icon{color:var(--text-muted);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;justify-content:center;align-items:center;transition-duration:.15s;display:flex}.theme-switcher .theme-option .theme-icon svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4);transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;transition-duration:.15s}.theme-switcher .theme-option .theme-label{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--text-muted);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;transition-duration:.15s;display:none}.theme-switcher .theme-option.active .theme-icon{color:var(--text)}.theme-switcher .theme-option.active .theme-icon svg{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.theme-switcher .theme-option.active .theme-label,.theme-switcher .theme-option:hover:not(.active) .theme-icon,.theme-switcher .theme-option:hover:not(.active) .theme-label{color:var(--text)}.theme-switcher:has(.theme-option[data-theme=device].active):before{content:var(--tw-content);--tw-translate-x:0;translate:var(--tw-translate-x) var(--tw-translate-y)}.theme-switcher:has(.theme-option[data-theme=light].active):before{content:var(--tw-content);--tw-translate-x:calc(100% + .5rem);translate:var(--tw-translate-x) var(--tw-translate-y)}.theme-switcher:has(.theme-option[data-theme=dark].active):before{content:var(--tw-content);--tw-translate-x:calc(200% + 1rem);translate:var(--tw-translate-x) var(--tw-translate-y)}.floating-toolbar{pointer-events:none;right:calc(var(--spacing) * 4);bottom:calc(var(--spacing) * 4);z-index:40;flex-direction:column;align-items:center;display:flex;position:fixed}@media not all and (min-width:48rem){.floating-toolbar{right:calc(var(--spacing) * 3);bottom:calc(var(--spacing) * 3)}}.floating-toolbar .toolbar-list{margin-bottom:calc(var(--spacing) * 2.5);align-items:center;gap:calc(var(--spacing) * 2.5);flex-direction:column;display:flex}@media not all and (min-width:48rem){.floating-toolbar .toolbar-list{margin-bottom:calc(var(--spacing) * 2);gap:calc(var(--spacing) * 2)}}.floating-toolbar .toolbar-btn{pointer-events:auto;width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11);cursor:pointer;background-color:var(--surface-overlay);color:var(--text-muted);--tw-shadow:var(--app-shadow-md);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);border-radius:3.40282e38px;place-items:center;display:grid}@media not all and (min-width:48rem){.floating-toolbar .toolbar-btn{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}}.floating-toolbar .toolbar-btn{transition:translate .32s cubic-bezier(.34,1.25,.5,1),scale .32s cubic-bezier(.34,1.25,.5,1),opacity .22s,visibility .32s,background-color .15s,color .15s;transition-delay:var(--fab-d,0s),var(--fab-d,0s),var(--fab-d,0s),var(--fab-d,0s),0s,0s}.floating-toolbar .toolbar-btn:hover{background-color:var(--hover-faint);color:var(--text)}.floating-toolbar .toolbar-btn:active{scale:.92}.floating-toolbar .toolbar-btn:not(.toggle){--fab-d:calc((var(--fab-n,1) - 1 - var(--fab-i,0)) * 60ms);text-decoration-line:none}.floating-toolbar .toolbar-btn:not(.toggle):active{--fab-d:0s}.floating-toolbar .toolbar-btn:not(.toggle) .icon{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5);-webkit-mask:var(--fab-icon) center/contain no-repeat;-webkit-mask:var(--fab-icon) center/contain no-repeat;-webkit-mask:var(--fab-icon) center/contain no-repeat;mask:var(--fab-icon) center/contain no-repeat;background-color:currentColor;flex-shrink:0}@media not all and (min-width:48rem){.floating-toolbar .toolbar-btn:not(.toggle) .icon{width:calc(var(--spacing) * 4.5);height:calc(var(--spacing) * 4.5)}}.floating-toolbar .toolbar-btn.toggle{border-style:var(--tw-border-style);color:var(--text-subtle);border-width:0}@media (hover:hover){.floating-toolbar .toolbar-btn.toggle:hover{color:var(--text)}}.floating-toolbar .toolbar-btn.toggle .icon{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5);transition-property:rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.25s;--tw-ease:var(--ease-out);transition-duration:.25s;transition-timing-function:var(--ease-out);place-items:center;display:grid}@media not all and (min-width:48rem){.floating-toolbar .toolbar-btn.toggle .icon{width:calc(var(--spacing) * 4.5);height:calc(var(--spacing) * 4.5)}}.floating-toolbar .toolbar-btn.toggle .icon svg{width:100%;height:100%}.floating-toolbar.collapsed .toolbar-btn:not(.toggle){pointer-events:none;visibility:hidden;opacity:0;--tw-translate-y:calc((var(--fab-n,1) - var(--fab-i,0)) * 3.375rem);scale:.35;translate:var(--tw-translate-x) var(--tw-translate-y);--fab-d:calc(var(--fab-i,0) * 60ms)}@media not all and (min-width:48rem){.floating-toolbar.collapsed .toolbar-btn:not(.toggle){--tw-translate-y:calc((var(--fab-n,1) - var(--fab-i,0)) * 3rem);translate:var(--tw-translate-x) var(--tw-translate-y)}}.floating-toolbar.collapsed .toolbar-btn.toggle .icon{rotate:45deg}button,input[type=button],input[type=submit],input[type=reset],.btn,.cbi-button{cursor:pointer;justify-content:center;align-items:center;gap:calc(var(--spacing) * 1.5);border-radius:calc(var(--radius-base) * 1.5);border-style:var(--tw-border-style);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 1.5);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition-property:background-color,border-color,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;border-width:1px;transition-duration:.15s;display:inline-flex}@media not all and (min-width:48rem){button,input[type=button],input[type=submit],input[type=reset],.btn,.cbi-button{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}}:is(button,input[type=button],input[type=submit],input[type=reset],.btn,.cbi-button)[disabled]{cursor:not-allowed;opacity:var(--app-opacity-disabled)}.td :is(button,input[type=button],input[type=submit],input[type=reset],.btn,.cbi-button){white-space:nowrap;flex:none;width:auto;display:inline-flex}@media not all and (min-width:48rem){.td :is(button,input[type=button],input[type=submit],input[type=reset],.btn,.cbi-button){min-height:calc(var(--spacing) * 9);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}.btn,.cbi-button,.cbi-button-default,.cbi-button-download,.cbi-button-find,.cbi-button-link,.cbi-button-up,.cbi-button-down{border-color:var(--hairline);background-color:var(--surface-sunken);color:var(--text)}@media (hover:hover){:is(.btn,.cbi-button,.cbi-button-default,.cbi-button-download,.cbi-button-find,.cbi-button-link,.cbi-button-up,.cbi-button-down):hover{background-color:var(--hover-faint)}}.drag-handle{border-color:var(--hairline);background-color:var(--surface-sunken);color:var(--text-muted)}@media (hover:hover){.drag-handle:hover{background-color:var(--hover-faint)}}.btn.primary,.cbi-button-action,.cbi-button-apply,.cbi-button-reload,.cbi-button-add,.cbi-button-edit{border-color:var(--brand);background-color:var(--brand);color:var(--on-brand)}@media (hover:hover){:is(.btn.primary,.cbi-button-action,.cbi-button-apply,.cbi-button-reload,.cbi-button-add,.cbi-button-edit):hover{background-color:var(--brand-hover)}}.cbi-button-positive,.cbi-button-fieldadd,.cbi-button-save{background-color:var(--brand-subtle);color:var(--brand);border-color:#0000}@media (hover:hover){:is(.cbi-button-positive,.cbi-button-fieldadd,.cbi-button-save):hover{background-color:var(--brand-subtle-hover)}}.cbi-button-negative,.cbi-section-remove .cbi-button,.cbi-button-reset,.cbi-button-remove{background-color:var(--danger-surface);color:var(--danger);border-color:#0000}@media (hover:hover){:is(.cbi-button-negative,.cbi-section-remove .cbi-button,.cbi-button-reset,.cbi-button-remove):hover{background-color:var(--danger-surface-hover)}}input:disabled{cursor:not-allowed;opacity:var(--app-opacity-disabled)}input[type=text],input[type=password],.cbi-input-text,.cbi-input{width:calc(var(--spacing) * 52.5);border-radius:calc(var(--radius-base) * 2);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--control-bg);max-width:100%;padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 1.5);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal);color:var(--text);position:relative}:is(input[type=text],input[type=password],.cbi-input-text,.cbi-input)::placeholder{color:var(--text-muted)}input[type=text],input[type=password],.cbi-input-text,.cbi-input{--tw-shadow:var(--app-shadow-sm);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);transition-property:border-color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;transition-duration:.15s}:is(input[type=text],input[type=password],.cbi-input-text,.cbi-input):focus{border-color:var(--brand);--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-ring-color:var(--focus-ring);--tw-outline-style:none;outline-style:none}.table.cbi-section-table :is(input[type=text],input[type=password],.cbi-input-text,.cbi-input){width:100%}.cbi-input-text{min-width:calc(var(--spacing) * 20)}@media not all and (min-width:48rem){.cbi-input-text{min-width:calc(var(--spacing) * 14)}}#localtime{min-width:calc(var(--spacing) * 70)}input[type=radio],input[type=checkbox]{margin-right:calc(var(--spacing) * 3);height:calc(var(--spacing) * 4);width:calc(var(--spacing) * 4);cursor:pointer;appearance:none;display:inline-block;position:relative}:is(input[type=radio],input[type=checkbox]):before{content:var(--tw-content);content:var(--tw-content);content:var(--tw-content);content:var(--tw-content);height:calc(var(--spacing) * 4);content:var(--tw-content);width:calc(var(--spacing) * 4);content:var(--tw-content);border-style:var(--tw-border-style);content:var(--tw-content);border-width:1px;border-color:var(--hairline);content:var(--tw-content);background-color:var(--control-bg);content:var(--tw-content);transition-property:background-color,border-color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));content:var(--tw-content);--tw-duration:.15s;transition-duration:.15s;position:absolute;top:0;left:0}:is(input[type=radio],input[type=checkbox]):after{content:var(--tw-content);content:var(--tw-content);top:calc(var(--spacing) * .5);content:var(--tw-content);left:calc(var(--spacing) * .5);content:var(--tw-content);height:calc(var(--spacing) * 3);content:var(--tw-content);width:calc(var(--spacing) * 3);content:var(--tw-content);background-color:var(--on-brand);content:var(--tw-content);opacity:0;content:var(--tw-content);transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));content:var(--tw-content);--tw-duration:.15s;transition-duration:.15s;position:absolute}:is(input[type=radio],input[type=checkbox]):checked:before{content:var(--tw-content);border-color:var(--brand);content:var(--tw-content);background-color:var(--brand)}:is(input[type=radio],input[type=checkbox]):checked:after{content:var(--tw-content);opacity:1}@media (hover:hover){:is(input[type=radio],input[type=checkbox]):hover:before{content:var(--tw-content);border-color:var(--hairline)}}:is(input[type=radio],input[type=checkbox]):focus:before{content:var(--tw-content);border-color:var(--brand);content:var(--tw-content);--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);content:var(--tw-content);--tw-ring-color:var(--focus-ring);content:var(--tw-content);--tw-outline-style:none;outline-style:none}:is(input[type=radio],input[type=checkbox]):disabled{cursor:not-allowed}input[type=radio]:before{content:var(--tw-content);border-radius:3.40282e38px}input[type=radio]:after{content:var(--tw-content);-webkit-mask:var(--icon-radio) center/cover no-repeat;-webkit-mask:var(--icon-radio) center/cover no-repeat;-webkit-mask:var(--icon-radio) center/cover no-repeat;mask:var(--icon-radio) center/cover no-repeat}input[type=checkbox]:before{content:var(--tw-content);border-radius:calc(var(--radius-base) * .5)}input[type=checkbox]:after{content:var(--tw-content);-webkit-mask:var(--icon-check) center/cover no-repeat;-webkit-mask:var(--icon-check) center/cover no-repeat;-webkit-mask:var(--icon-check) center/cover no-repeat;mask:var(--icon-check) center/cover no-repeat}.cbi-checkbox{align-items:center;display:inline-flex;position:relative}textarea{min-height:calc(var(--spacing) * 24);resize:vertical;border-radius:calc(var(--radius-base) * 2);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--control-bg);width:100%;padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal);color:var(--text)}textarea::placeholder{color:var(--text-muted)}textarea{--tw-shadow:var(--app-shadow-sm);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);transition-property:border-color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;transition-duration:.15s}textarea:focus{border-color:var(--brand);--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-ring-color:var(--focus-ring);--tw-outline-style:none;outline-style:none}textarea[disabled]{cursor:not-allowed;opacity:var(--app-opacity-disabled)}select{max-width:100%;min-width:calc(var(--spacing) * 52.5);appearance:none;border-radius:calc(var(--radius-base) * 2);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--control-bg);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 1.5);padding-right:calc(var(--spacing) * 10);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal);color:var(--text);--tw-shadow:var(--app-shadow-sm);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);transition-property:border-color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;transition-duration:.15s}select:focus{border-color:var(--brand);--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-ring-color:var(--focus-ring);--tw-outline-style:none;outline-style:none}@media (min-width:48rem){select{max-width:calc(var(--spacing) * 100)}}select{background-image:var(--icon-arrow-down);background-position:right .75rem center;background-repeat:no-repeat;background-size:16px}select:where([data-darkmode=true],[data-darkmode=true] *){background-image:var(--icon-arrow-down-dark)}select[disabled]{cursor:not-allowed;opacity:var(--app-opacity-disabled)}.cbi-dropdown{white-space:nowrap;--tw-shadow:var(--app-shadow-sm);min-width:fit-content;max-width:100%;height:fit-content;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);flex-shrink:0;align-items:center;padding:0;display:inline-flex}.cbi-dropdown[disabled]{pointer-events:none;opacity:var(--app-opacity-disabled)}.cbi-dropdown:not(.btn):not(.cbi-button){max-width:100%;min-width:calc(var(--spacing) * 52.5);border-radius:calc(var(--radius-base) * 2);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface)}@media (min-width:48rem){.cbi-dropdown:not(.btn):not(.cbi-button){max-width:calc(var(--spacing) * 100)}}.cbi-dropdown:not(.btn):not(.cbi-button)>ul>li[placeholder]{display:none}.cbi-dropdown>ul{align-items:center;gap:calc(var(--spacing) * .5);flex-wrap:nowrap;flex:1;margin:0;list-style-type:none;display:flex;overflow:hidden}@media not all and (min-width:48rem){.cbi-dropdown>ul{flex-wrap:wrap}}.cbi-dropdown>ul>li{align-items:center;gap:var(--spacing);padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * 1.5);margin:0;list-style-type:none;display:none;overflow:hidden}.cbi-dropdown>ul>li[display]{display:flex!important}.cbi-dropdown>ul>li .hide-open{display:block}.cbi-dropdown>ul>li .hide-close{display:none}.cbi-dropdown>ul>li>form{pointer-events:none;display:none}.cbi-dropdown>ul>li>label{align-items:center;gap:calc(var(--spacing) * 2);display:flex}.cbi-dropdown>ul>li img{height:calc(var(--spacing) * 5);width:calc(var(--spacing) * 5);vertical-align:middle;flex:none}.cbi-dropdown>ul>li span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cbi-dropdown>ul.dropdown{z-index:50;border-radius:var(--radius-base);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface-overlay);--tw-shadow:var(--app-shadow-lg);width:fit-content;min-width:100%;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-backdrop-blur:blur(var(--blur-md));--tw-backdrop-saturate:saturate(150%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);position:absolute;left:0;overflow-y:auto}.cbi-dropdown>ul.dropdown>li{min-height:calc(var(--spacing) * 9);cursor:pointer;width:100%;padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 1.5);--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--text-muted)}@media (hover:hover){.cbi-dropdown>ul.dropdown>li:hover{background-color:var(--brand-subtle)}}.cbi-dropdown>ul.preview{display:none}.cbi-dropdown[empty]>ul{max-width:1px;max-height:1px}.cbi-dropdown[empty]>ul>li,.cbi-dropdown[optional][open]>ul.dropdown>li[placeholder]{display:block}.cbi-dropdown[open]{border-color:var(--brand);--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-ring-color:var(--focus-ring);position:relative}.cbi-dropdown[open]>ul.dropdown{width:auto;max-width:none;display:block}.cbi-dropdown[open]>ul.dropdown>li{display:flex}.cbi-dropdown[open]>ul.dropdown>li[selected]{background-color:var(--brand-subtle);color:var(--brand)}.cbi-dropdown[open]>ul.dropdown>li[unselectable]{opacity:var(--app-opacity-disabled)}.cbi-dropdown[open]>ul.dropdown>li .hide-open{display:none}.cbi-dropdown[open]>ul.dropdown>li .hide-close{display:block}.cbi-dropdown[open]>ul.preview{display:flex}:is(.cbi-dropdown[multiple][more],.cbi-dropdown[multiple][empty])>.more{padding-inline:calc(var(--spacing) * 2.5);padding-block:calc(var(--spacing) * 1.5);flex:none;display:flex}.cbi-dropdown[multiple][empty]>.more{flex:1}.cbi-dropdown[multiple][open]>ul.dropdown>li>form{align-items:center;display:flex}.cbi-dropdown[multiple]>ul>li>label{display:flex}.cbi-dropdown>.open{cursor:pointer;border-left-style:var(--tw-border-style);border-left-width:1px;border-color:var(--hairline);padding-inline:calc(var(--spacing) * 2.5);padding-block:calc(var(--spacing) * .5);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:currentColor;flex:none;justify-content:center;align-items:center;display:flex}.cbi-dropdown>.more{display:none}.cbi-tooltip{z-index:110;width:max-content;max-width:var(--container-xs);--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y);border-radius:calc(var(--radius-base) * 1.5);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface-overlay);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));overflow-wrap:normal;word-break:normal;white-space:normal;color:var(--text);opacity:0;--tw-shadow:var(--app-shadow-lg);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);transition-property:visibility,opacity,scale;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;--tw-ease:var(--ease-out);transition-duration:.15s;transition-timing-function:var(--ease-out);position:absolute;inset-inline-start:-10000px}.cbi-tooltip.error{border-color:var(--hairline);background-color:var(--danger-surface);color:var(--danger)}.cbi-tooltip.success{border-color:var(--hairline);background-color:var(--success-surface);color:var(--success)}.cbi-tooltip.info{border-color:var(--hairline);background-color:var(--info-surface);color:var(--info)}.cbi-tooltip.notice{border-color:var(--hairline);background-color:var(--warning-surface);color:var(--warning)}.cbi-tooltip-container,[data-tooltip]{cursor:help;white-space:nowrap;text-underline-offset:2px;text-decoration-line:underline;text-decoration-style:dotted;text-decoration-color:currentColor;display:inline-block;position:relative}:is(.cbi-tooltip-container,[data-tooltip]) .cbi-tooltip{visibility:hidden;--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y);opacity:0;transition-property:visibility,opacity,scale;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;--tw-ease:var(--ease-out);transition-duration:.15s;transition-timing-function:var(--ease-out)}:is(.cbi-tooltip-container,[data-tooltip]):hover .cbi-tooltip{visibility:visible;--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y);opacity:1;inset-inline-start:auto}[data-tip]:not([data-tip=""]){position:relative}[data-tip]:not([data-tip=""]):after{content:attr(data-tip);pointer-events:none;z-index:110;width:max-content;max-width:var(--container-xs);--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y);border-radius:var(--radius-base);background-color:var(--text);padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));overflow-wrap:normal;word-break:normal;white-space:normal;color:var(--bg);opacity:0;transition-property:opacity,scale;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;--tw-ease:var(--ease-out);transition-duration:.15s;transition-timing-function:var(--ease-out);position:absolute}[data-tip]:not([data-tip=""]):not([data-tip-pos]):after,[data-tip]:not([data-tip=""])[data-tip-pos=top]:after{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y);bottom:calc(100% + .5rem);left:50%}[data-tip]:not([data-tip=""])[data-tip-pos=bottom]:after{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y);top:calc(100% + .5rem);left:50%}[data-tip]:not([data-tip=""])[data-tip-pos=left]:after{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y);top:50%;right:calc(100% + .625rem)}[data-tip]:not([data-tip=""])[data-tip-pos=right]:after{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y);top:50%;left:calc(100% + .625rem)}[data-tip]:not([data-tip=""]):focus-visible:after{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y);opacity:1;transition-delay:.3s}@media (hover:hover){[data-tip]:not([data-tip=""]):hover:after{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y);opacity:1;transition-delay:.3s}}.alert-message{top:calc(var(--spacing) * 14);z-index:30;margin-bottom:calc(var(--spacing) * 4);border-radius:calc(var(--radius-base) * 2);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface-sunken);padding:calc(var(--spacing) * 6);color:var(--text);position:sticky}@media not all and (min-width:48rem){.alert-message{margin-inline:0;margin-bottom:calc(var(--spacing) * 3);padding:calc(var(--spacing) * 4)}}.alert-message.modal{position:static;top:auto}.modal .alert-message{margin-bottom:0}.login-shell .alert-message{padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * 2.5);text-align:center;font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));margin-bottom:0}@media not all and (min-width:48rem){.login-shell .alert-message{padding-inline:calc(var(--spacing) * .5)}}.alert-message.success{border-color:var(--hairline);background-color:var(--success-surface);color:var(--success)}.alert-message.info{border-color:var(--hairline);background-color:var(--info-surface);color:var(--info)}.alert-message.warning,.alert-message.notice{border-color:var(--hairline);background-color:var(--warning-surface);color:var(--warning)}.alert-message.error,.alert-message.danger{border-color:var(--hairline);background-color:var(--danger-surface);color:var(--danger)}.alert-message h4,.alert-message h5,.alert-message pre,.alert-message ul,.alert-message li,.alert-message p{border-style:var(--tw-border-style);color:inherit;background-color:#0000;border-width:0}.alert-message h4{margin-bottom:calc(var(--spacing) * 2);font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}@media not all and (min-width:48rem){.alert-message h4{margin-bottom:calc(var(--spacing) * 1.5);font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}}.alert-message p{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}@media not all and (min-width:48rem){.alert-message p{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}.alert-message .right{margin-top:calc(var(--spacing) * 4)}@media not all and (min-width:48rem){.alert-message .right{margin-top:calc(var(--spacing) * 3)}}.cbi-progressbar{height:calc(var(--spacing) * 3.5);cursor:help;background-color:var(--surface-sunken);border-radius:3.40282e38px;width:100%;position:relative;overflow:hidden}.cbi-progressbar:before{content:var(--tw-content);content:var(--tw-content);content:var(--tw-content);content:var(--tw-content);--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y);content:var(--tw-content);--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y);content:var(--tw-content);border-radius:calc(var(--radius-base) * 2);content:var(--tw-content);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));content:var(--tw-content);white-space:nowrap;content:var(--tw-content);color:var(--text);--tw-content:attr(title);content:var(--tw-content);position:absolute;top:50%;left:50%}@media not all and (min-width:48rem){.cbi-progressbar{height:calc(var(--spacing) * 4)}.cbi-progressbar:before{content:var(--tw-content);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));content:var(--tw-content);--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}}@media not all and (min-width:40rem){[data-page=admin-system-package-manager] .cbi-progressbar:before{content:var(--tw-content);font-size:10px}}.cbi-progressbar>div{--tw-gradient-position:to right;height:100%}@supports (background-image:linear-gradient(in lab, red, red)){.cbi-progressbar>div{--tw-gradient-position:to right in oklab}}.cbi-progressbar>div{background-image:linear-gradient(var(--tw-gradient-stops));--tw-gradient-from:var(--progress-start);--tw-gradient-to:var(--progress-end);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.25s;transition-duration:.25s}.label{background-color:var(--surface-sunken);padding-inline:calc(var(--spacing) * 3);padding-block:var(--spacing);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold);color:var(--text);text-transform:uppercase;border-radius:3.40282e38px}.label.important{background-color:var(--info-surface);color:var(--info)}.label.warning{background-color:var(--danger-surface);color:var(--danger)}.label.success{background-color:var(--success-surface);color:var(--success)}.label.notice{background-color:var(--warning-surface);color:var(--warning)}.zonebadge{align-items:center;gap:calc(var(--spacing) * 1.5);border-radius:var(--radius-base);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface-sunken);padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing);vertical-align:middle;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-leading:var(--leading-normal);line-height:var(--leading-normal);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--text);display:inline-flex;overflow:visible}@media not all and (min-width:48rem){.zonebadge{gap:var(--spacing);padding-inline:calc(var(--spacing) * 1.5);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}}.zonebadge[style*=--zone-color-rgb]{border-color:#0000;background-color:rgb(var(--zone-color-rgb),.7)!important}.zonebadge[style*=--zone-color-rgb] em{color:var(--text)}.zonebadge.zonebadge-empty{--tw-border-style:dashed;--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal);color:var(--text-muted);background-color:#0000;border-style:dashed;font-style:italic}.ifacebadge>.zonebadge{padding-inline:var(--spacing);padding-block:calc(var(--spacing) * 1.5);border-radius:3.40282e38px}.cbi-dropdown .zonebadge{padding-inline:calc(var(--spacing) * 1.5);padding-block:calc(var(--spacing) * .5)}.ifacebadge{cursor:default;align-items:center;gap:calc(var(--spacing) * 2);border-radius:calc(var(--radius-base) * 2);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface-sunken);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal);color:var(--text);--tw-shadow:var(--app-shadow-sm);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);transition-property:box-shadow,border-color,background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;flex-wrap:nowrap;transition-duration:.15s;display:inline-flex}@media (hover:hover){.ifacebadge:hover{border-color:var(--hairline);background-color:var(--surface-sunken);--tw-shadow:var(--app-shadow-md);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}@media not all and (min-width:48rem){.ifacebadge{gap:calc(var(--spacing) * 1.5);padding-inline:calc(var(--spacing) * 2.5);padding-block:calc(var(--spacing) * 1.5);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}}.zonebadge>.ifacebadge{border-radius:calc(var(--radius-base) * 2);padding-inline:calc(var(--spacing) * 1.5);padding-block:0}.zonebadge>.ifacebadge img{margin-right:var(--spacing);width:calc(var(--spacing) * 4)}.cbi-dropdown .ifacebadge{gap:var(--spacing);border-radius:var(--radius-base);padding-inline:calc(var(--spacing) * 1.5);padding-block:calc(var(--spacing) * .5);--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}@media (hover:hover){.cbi-dropdown .ifacebadge:hover{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.cbi-dropdown .ifacebadge img{margin-right:var(--spacing);width:calc(var(--spacing) * 4)}.ifacebadge>img{width:calc(var(--spacing) * 5);flex-shrink:0;align-self:center}@media not all and (min-width:48rem){.ifacebadge>img{width:calc(var(--spacing) * 4)}}.ifacebadge>span>.nowrap{margin-bottom:calc(var(--spacing) * 1.5);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));display:inline-block}@media not all and (min-width:48rem){.ifacebadge>span>.nowrap{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}}.ifacebadge.ifacebadge-active{border-color:var(--brand);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.ifacebadge.large{min-width:200px;padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 3);flex:1}@media not all and (min-width:48rem){.ifacebadge.large{min-width:180px;padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2.5)}}.cbi-section{margin-bottom:calc(var(--spacing) * 3);border-radius:calc(var(--radius-base) * 2);padding:calc(var(--spacing) * 5);overflow:visible}@media not all and (min-width:48rem){.cbi-section{padding:calc(var(--spacing) * 3)}}.cbi-section[data-tab-title]{margin:0;padding:0}.cbi-section[data-tab-active=true]{margin-bottom:calc(var(--spacing) * 3);padding:calc(var(--spacing) * 5)}@media not all and (min-width:48rem){.cbi-section[data-tab-active=true]{padding:calc(var(--spacing) * 3)}}#maincontent .cbi-section{border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface);--tw-shadow:var(--app-shadow-sm);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.cbi-section>.cbi-title{justify-content:space-between;align-items:flex-start;display:flex}.cbi-section>.cbi-title>h3{flex:1}.cbi-section>.cbi-title>h3 .label[data-clickable]{background-color:var(--surface-sunken);color:var(--text);width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7);cursor:pointer;justify-content:center;align-items:center;padding:0;display:inline-flex}.cbi-section>.cbi-title>h3 .label[data-clickable]:before{content:var(--tw-content);width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4);content:var(--tw-content);content:var(--tw-content);transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));content:var(--tw-content);--tw-duration:.15s;background-color:currentColor;transition-duration:.15s}@media (hover:hover){.cbi-section>.cbi-title>h3 .label[data-clickable]:hover{--tw-shadow:var(--app-shadow-md);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.cbi-section>.cbi-title>h3 .label[data-clickable]:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}@media not all and (min-width:48rem){.cbi-section>.cbi-title>h3 .label[data-clickable]{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}}.cbi-section>.cbi-title>h3 span[data-indicator=poll-status]{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5);cursor:pointer;font-size:0;position:relative}.cbi-section>.cbi-title>h3 span[data-indicator=poll-status]:before{content:var(--tw-content);content:var(--tw-content);width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5);content:var(--tw-content);content:var(--tw-content);transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));content:var(--tw-content);--tw-duration:.15s;content:var(--tw-content);--tw-ease:var(--ease-out);transition-duration:.15s;transition-timing-function:var(--ease-out);background-color:currentColor;position:absolute}@media (hover:hover){.cbi-section>.cbi-title>h3 span[data-indicator=poll-status]:hover:before{content:var(--tw-content);--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}}.cbi-section>.cbi-title>h3 span[data-indicator=poll-status]:active:before{content:var(--tw-content);--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.cbi-section>.cbi-title>h3 span[data-indicator=poll-status][data-style=active]:before{content:var(--tw-content);content:var(--tw-content);-webkit-mask:var(--icon-arrow-right) center/cover no-repeat;-webkit-mask:var(--icon-arrow-right) center/cover no-repeat;-webkit-mask:var(--icon-arrow-right) center/cover no-repeat;mask:var(--icon-arrow-right) center/cover no-repeat;rotate:0deg}.cbi-section>.cbi-title>h3 span[data-indicator=poll-status][data-style=inactive]:before{content:var(--tw-content);content:var(--tw-content);-webkit-mask:var(--icon-arrow-right) center/cover no-repeat;-webkit-mask:var(--icon-arrow-right) center/cover no-repeat;-webkit-mask:var(--icon-arrow-right) center/cover no-repeat;mask:var(--icon-arrow-right) center/cover no-repeat;rotate:90deg}.cbi-section legend{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.cbi-section h3{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--hairline);padding-bottom:calc(var(--spacing) * 4);color:var(--text)}@media not all and (min-width:48rem){.cbi-section h3{padding-bottom:calc(var(--spacing) * 2);margin-inline:0}.cbi-section div[style*=display\:grid]{gap:calc(var(--spacing) * 3);grid-template-columns:repeat(2,minmax(0,1fr))!important}}.cbi-section .network-status-table{margin-bottom:calc(var(--spacing) * 3);justify-content:space-around;gap:calc(var(--spacing) * 4);flex-wrap:wrap;display:flex}@media not all and (min-width:48rem){.cbi-section .network-status-table{flex-direction:column}}.cbi-section .cbi-section-create{margin-top:calc(var(--spacing) * 6);align-items:center;gap:calc(var(--spacing) * 3);flex-wrap:wrap;display:flex}@media not all and (min-width:48rem){.cbi-section .cbi-section-create{margin-inline:0;margin-top:calc(var(--spacing) * 5);align-items:stretch;gap:calc(var(--spacing) * 3);flex-direction:column}}.cbi-section .cbi-section-create>div{flex:none}@media not all and (min-width:48rem){.cbi-section .cbi-section-create>div{flex:1;width:100%}}.ifacebox{min-width:calc(var(--spacing) * 40);border-radius:calc(var(--radius-base) * 2);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface-overlay);text-align:center;font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5);--tw-shadow:var(--app-shadow-md);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);flex-direction:column;align-items:stretch;display:inline-flex;position:relative;overflow:visible}@media (hover:hover){.ifacebox:hover{border-color:var(--hairline);--tw-shadow:var(--app-shadow-lg);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}@media not all and (min-width:48rem){.ifacebox{min-width:calc(var(--spacing) * 30);border-radius:calc(var(--radius-base) * 3);border-color:var(--hairline);--tw-shadow:var(--app-shadow-sm);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);flex:1}td .ifacebox{flex-direction:row}}.ifacebox .ifacebox-head{border-top-left-radius:calc(var(--radius-base) * 2);border-top-right-radius:calc(var(--radius-base) * 2);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--hairline);background-color:var(--surface-sunken);width:100%;padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 3);text-align:center;--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight);color:var(--text);transition-property:background-color,border-color,color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;transition-duration:.15s}@media not all and (min-width:48rem){.ifacebox .ifacebox-head{border-top-left-radius:calc(var(--radius-base) * 3);border-top-right-radius:calc(var(--radius-base) * 3);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2.5);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5);--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}}.ifacebox .ifacebox-head[style*=--zone-color-rgb]{background-color:rgb(var(--zone-color-rgb),.75)!important}@media not all and (min-width:48rem){td :is(.ifacebox .ifacebox-head){border-top-left-radius:calc(var(--radius-base) * 3);border-bottom-left-radius:calc(var(--radius-base) * 3);border-right-style:var(--tw-border-style);border-right-width:1px;border-bottom-style:var(--tw-border-style);border-bottom-width:0;border-top-right-radius:0;flex-shrink:0;justify-content:center;align-items:center;width:auto;display:flex}}.ifacebox .ifacebox-head.cbi-tooltip-container{background-color:#0000;position:static}.ifacebox .ifacebox-head.cbi-tooltip-container .cbi-tooltip{bottom:0;left:0}.ifacebox .ifacebox-head.active{border-color:var(--brand);background-color:var(--brand);color:var(--on-brand)}.ifacebox .ifacebox-body{justify-content:center;align-items:stretch;gap:var(--spacing);border-bottom-right-radius:calc(var(--radius-base) * 2);border-bottom-left-radius:calc(var(--radius-base) * 2);width:100%;padding:calc(var(--spacing) * 4);text-align:center;color:var(--text);flex-direction:column;flex:1;display:flex}@media not all and (min-width:48rem){.ifacebox .ifacebox-body{border-bottom-right-radius:calc(var(--radius-base) * 3);border-bottom-left-radius:calc(var(--radius-base) * 3)}td :is(.ifacebox .ifacebox-body){border-top-right-radius:calc(var(--radius-base) * 3);border-bottom-right-radius:calc(var(--radius-base) * 3);padding-block:calc(var(--spacing) * 2);padding-right:calc(var(--spacing) * 2);padding-left:calc(var(--spacing) * 4);border-bottom-left-radius:0;flex-direction:row;align-items:center}}.ifacebox .ifacebox-body>img{margin-inline:auto}:where(.ifacebox .ifacebox-body>span>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}.ifacebox .ifacebox-body>span{color:var(--text)}@media not all and (min-width:48rem){:where(.ifacebox .ifacebox-body>span>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}.ifacebox .ifacebox-body>span{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}}.network-status-table :is(.ifacebox .ifacebox-body>span){width:100%}.ifacebox .ifacebox-body>span .cbi-tooltip-container+.cbi-tooltip-container{margin-left:calc(var(--spacing) * 2)}@media not all and (min-width:48rem){.ifacebox .ifacebox-body>span .cbi-tooltip-container+.cbi-tooltip-container{margin-left:calc(var(--spacing) * 1.5)}}.ifacebox .ifacebox-body>span .cbi-tooltip{transition-delay:.2s}.ifacebox .ifacebox-body>span .nowrap{display:inline-block}.ifacebox .ifacebox-body>span>.nowrap:not(:last-child){margin-bottom:calc(var(--spacing) * 4)}@media not all and (min-width:48rem){.ifacebox .ifacebox-body>span>.nowrap:not(:last-child){margin-bottom:calc(var(--spacing) * 3)}}.ifacebox .ifacebox-body>span img{width:calc(var(--spacing) * 6);flex-shrink:0}@media not all and (min-width:48rem){.ifacebox .ifacebox-body>span img{width:calc(var(--spacing) * 5)}}.ifacebox .ifacebox-body>div{width:100%;display:block}:where(.ifacebox .ifacebox-body>div>:not(:last-child)){--tw-space-y-reverse:0;margin-block:0}@media not all and (min-width:48rem){td :is(.ifacebox .ifacebox-body>div){flex:1;width:auto}:where(td :is(.ifacebox .ifacebox-body>div)>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}}.ifacebox .ifacebox-body .cbi-tooltip-container{cursor:help;color:var(--text);justify-content:center;align-items:center;display:inline-flex;position:static}.ifacebox .ifacebox-body .cbi-tooltip-container .cbi-tooltip{bottom:0}@media (min-width:48rem){.ifacebox .ifacebox-body .cbi-tooltip-container .cbi-tooltip{left:0}}.ifacebox .ifacebox-body .cbi-tooltip-container .cbi-tooltip .nowrap{white-space:nowrap}.ifacebox .ifacebox-body small{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4);display:block}@media not all and (min-width:48rem){td :is(.ifacebox .ifacebox-body small){margin-top:0}}.network-status-table .ifacebox-body{justify-content:space-around;align-items:center;gap:calc(var(--spacing) * 2);flex-direction:column;flex:1;height:100%;display:flex}.network-status-table .ifacebox-body>div{flex-wrap:wrap;display:flex}.network-status-table .ifacebox-body .ifacebadge{flex:1}#modal_overlay{pointer-events:none;background-color:#0000;display:none;position:fixed;top:0;bottom:0;overflow:auto}.modal-overlay-active #modal_overlay{pointer-events:auto;z-index:100;background-color:var(--scrim);--tw-backdrop-blur:blur(var(--blur-md));--tw-backdrop-saturate:saturate(150%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);grid-template-columns:repeat(1,minmax(0,1fr));place-items:center;display:grid;inset:0}#modal_overlay>.modal{width:var(--container-5xl);gap:calc(var(--spacing) * 4);border-radius:calc(var(--radius-base) * 3);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface-overlay);padding:calc(var(--spacing) * 6);overflow-wrap:break-word;white-space:normal;--tw-shadow:var(--app-shadow-lg);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);flex-direction:column;display:flex;position:relative}@media not all and (min-width:48rem){#modal_overlay>.modal{gap:calc(var(--spacing) * 3);width:100%;padding:calc(var(--spacing) * 4)}}#modal_overlay>.modal h4{text-align:center;margin-bottom:0}#modal_overlay>.modal h4 em{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--brand)}#modal_overlay>.modal h5{margin-block:calc(var(--spacing) * 3);color:var(--text)}#modal_overlay>.modal p{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed);color:var(--text)}#modal_overlay>.modal>ul{border-radius:calc(var(--radius-base) * 2);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);padding:calc(var(--spacing) * 3);overflow:auto}#modal_overlay>.modal label.btn{border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface-sunken);color:var(--text)}@media (hover:hover){#modal_overlay>.modal label.btn:hover{border-color:var(--hairline)}}#modal_overlay>.modal pre{overflow:auto}#modal_overlay>.modal pre.errors{border-color:var(--hairline);background-color:var(--danger-surface);color:var(--danger)}#modal_overlay>.modal pre+pre{margin-top:calc(var(--spacing) * 3)}#modal_overlay>.modal .button-row,#modal_overlay>.modal div.left,#modal_overlay>.modal div.right{gap:calc(var(--spacing) * 3);border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--hairline);padding:calc(var(--spacing) * 4);flex-shrink:0;display:flex}@media not all and (min-width:48rem){#modal_overlay>.modal .button-row,#modal_overlay>.modal div.left,#modal_overlay>.modal div.right{gap:calc(var(--spacing) * 1.5);padding:calc(var(--spacing) * 2.5)}}#modal_overlay>.modal div.left{justify-content:flex-start}#modal_overlay>.modal .button-row,#modal_overlay>.modal div.right{justify-content:flex-end}#modal_overlay>.modal.uci-dialog ins,#modal_overlay>.modal.uci-dialog del,#modal_overlay>.modal.uci-dialog var{font-family:var(--font-mono);--tw-shadow:var(--app-shadow-sm);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);font-style:normal;text-decoration-line:none}#modal_overlay>.modal.uci-dialog ins{border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--success-surface);color:var(--success)}#modal_overlay>.modal.uci-dialog del{border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--danger-surface);color:var(--danger)}#modal_overlay>.modal.uci-dialog var{border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--info-surface);color:var(--info)}#modal_overlay>.modal.uci-dialog .uci-change-legend{margin-top:calc(var(--spacing) * 4);gap:calc(var(--spacing) * 3);border-radius:calc(var(--radius-base) * 2);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface-sunken);padding:calc(var(--spacing) * 4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media not all and (min-width:48rem){#modal_overlay>.modal.uci-dialog .uci-change-legend{gap:calc(var(--spacing) * 2);padding:calc(var(--spacing) * 3);grid-template-columns:repeat(1,minmax(0,1fr))}}#modal_overlay>.modal.uci-dialog .uci-change-legend .uci-change-legend-label{align-items:center;gap:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--text);display:flex}#modal_overlay>.modal.uci-dialog .uci-change-legend .uci-change-legend-label ins,#modal_overlay>.modal.uci-dialog .uci-change-legend .uci-change-legend-label del,#modal_overlay>.modal.uci-dialog .uci-change-legend .uci-change-legend-label var{height:calc(var(--spacing) * 6);min-width:calc(var(--spacing) * 6);border-radius:var(--radius-base);padding-inline:calc(var(--spacing) * 2);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);justify-content:center;align-items:center;display:flex}#modal_overlay>.modal.uci-dialog .uci-change-legend .uci-change-legend-label var ins,#modal_overlay>.modal.uci-dialog .uci-change-legend .uci-change-legend-label var del{margin-left:var(--spacing);height:calc(var(--spacing) * 4);min-width:calc(var(--spacing) * 4);padding-inline:var(--spacing)}#modal_overlay>.modal.uci-dialog .uci-change-list{margin-top:calc(var(--spacing) * 4)}:where(#modal_overlay>.modal.uci-dialog .uci-change-list>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}#modal_overlay>.modal.uci-dialog .uci-change-list h5{margin-top:calc(var(--spacing) * 6);margin-bottom:calc(var(--spacing) * 2);border-radius:calc(var(--radius-base) * 1.5);background-color:var(--surface-sunken);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--text)}#modal_overlay>.modal.uci-dialog .uci-change-list h5:first-child{margin-top:0}#modal_overlay>.modal.uci-dialog .uci-change-list ins,#modal_overlay>.modal.uci-dialog .uci-change-list del{border-radius:calc(var(--radius-base) * 1.5);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 3);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));display:block}:is(#modal_overlay>.modal.uci-dialog .uci-change-list ins,#modal_overlay>.modal.uci-dialog .uci-change-list del) strong{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}#modal_overlay>.modal.uci-dialog .uci-change-list var{border-radius:var(--radius-base);padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));display:inline-block}#modal_overlay>.modal.uci-dialog .uci-change-list var ins,#modal_overlay>.modal.uci-dialog .uci-change-list var del{margin-left:var(--spacing);padding-inline:calc(var(--spacing) * 1.5);padding-block:calc(var(--spacing) * .5);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));display:inline-block}@media not all and (min-width:48rem){.mobile-menu-overlay{visibility:hidden;z-index:60;background-color:var(--mega-menu-bg);opacity:0;position:fixed;inset:0}}@media (min-width:48rem){.mobile-menu-overlay{display:none}}@media not all and (min-width:48rem){.mobile-menu-overlay.mobile-menu-open{visibility:visible;opacity:1;transition-property:visibility,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.25s;transition-duration:.25s}.mobile-menu-overlay .mobile-nav{width:100%;height:100%;padding-top:calc(var(--spacing) * 14);flex-direction:column;display:flex}.mobile-menu-overlay .mobile-nav .mobile-nav-body{min-height:0;padding-inline:calc(var(--spacing) * 5);padding-top:calc(var(--spacing) * 6);flex-direction:column;flex:1;display:flex}.mobile-menu-overlay .mobile-nav .mobile-nav-body .mobile-nav-label{margin-bottom:calc(var(--spacing) * 3);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--text-muted)}.mobile-menu-overlay .mobile-nav .mobile-nav-list{--tw-translate-y:calc(var(--spacing) * -2);min-height:0;translate:var(--tw-translate-x) var(--tw-translate-y);overscroll-behavior:contain;padding:0;padding-bottom:calc(var(--spacing) * 5);opacity:0;flex-direction:column;flex:1;margin:0;list-style-type:none;display:flex;overflow-y:auto}.mobile-menu-overlay .mobile-nav .mobile-nav-list .mobile-nav-item{flex-shrink:0}.mobile-menu-overlay .mobile-nav .mobile-nav-list .mobile-nav-item .mobile-nav-link{min-height:calc(var(--spacing) * 13);justify-content:space-between;align-items:center;gap:calc(var(--spacing) * 4);border-style:var(--tw-border-style);width:100%;padding-inline:0;padding-block:calc(var(--spacing) * 2.5);text-align:left;font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height));--tw-leading:var(--leading-tight);line-height:var(--leading-tight);--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight);--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);background-color:#0000;border-width:0;border-radius:0;text-decoration-line:none;display:flex}.mobile-menu-overlay .mobile-nav .mobile-nav-list .mobile-nav-item .mobile-nav-submenu .mobile-nav-submenu-list{margin-inline:0;margin-top:0;margin-bottom:calc(var(--spacing) * 2);padding-block:var(--spacing);padding-right:0;padding-left:calc(var(--spacing) * 4)}.mobile-menu-overlay .mobile-nav .mobile-nav-list .mobile-nav-item .mobile-nav-submenu .mobile-nav-subitem .mobile-nav-sublink{min-height:calc(var(--spacing) * 10);width:100%;padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));align-items:center}.mobile-menu-overlay .mobile-nav .mobile-nav-footer{border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--hairline);padding-inline:calc(var(--spacing) * 5);padding-top:calc(var(--spacing) * 4);padding-bottom:max(1rem, env(safe-area-inset-bottom));flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.mobile-menu-overlay .mobile-nav .mobile-nav-footer .mobile-nav-footer-action{align-items:center;display:flex}.mobile-menu-overlay .mobile-nav .mobile-nav-footer .mobile-nav-logout{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--text);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;text-decoration-line:none;transition-duration:.15s}@media (hover:hover){.mobile-menu-overlay .mobile-nav .mobile-nav-footer .mobile-nav-logout:hover{color:var(--brand)}}.mobile-menu-overlay .mobile-nav .mobile-nav-footer .theme-switcher .theme-option{padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing)}.mobile-menu-overlay.mobile-menu-open .mobile-nav-list{--tw-translate-y:0;translate:var(--tw-translate-x) var(--tw-translate-y);opacity:1;transition-property:translate,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.25s;--tw-ease:var(--ease-out);transition-duration:.25s;transition-timing-function:var(--ease-out)}body.mobile-navigation-open>header{z-index:70;background-color:#0000}}[data-nav-type=mega-menu] .desktop-menu-overlay{pointer-events:none;visibility:hidden;z-index:60;background-color:var(--mega-menu-scrim);opacity:0;--tw-backdrop-blur:blur(var(--blur-lg));--tw-backdrop-saturate:saturate(150%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);transition-property:opacity,visibility;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.22s;--tw-ease:cubic-bezier(.4,0,.6,1);transition-duration:.22s;transition-timing-function:cubic-bezier(.4,0,.6,1);position:fixed;inset:0}@media not all and (min-width:48rem){[data-nav-type=mega-menu] .desktop-menu-overlay{display:none}}[data-nav-type=mega-menu] .desktop-menu-overlay.active{pointer-events:auto;visibility:visible;opacity:1}table.table,.table{margin-bottom:calc(var(--spacing) * 3);border-collapse:separate;--tw-border-spacing-x:0;--tw-border-spacing-y:0;width:100%;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y);border-radius:calc(var(--radius-base) * 2);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);overflow:visible}@media not all and (min-width:48rem){table.table,.table{border-style:var(--tw-border-style);--tw-shadow:0 0 #0000;width:100%;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);border-width:0;border-radius:0;margin-inline:0;display:block;overflow:visible}}:is(table.table,.table)[width="100%"]{width:100%}:is(table.table,.table)[width="33%"]{width:33.3333%}:is(table.table,.table) .cbi-section-table-titles{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}:is(:is(table.table,.table) .cbi-section-table-titles.named,:is(table.table,.table) .cbi-section-table-descr.named,:is(table.table,.table) .cbi-section-table-row[data-title]):before{content:var(--tw-content);content:var(--tw-content);border-color:var(--hairline);content:var(--tw-content);padding-inline:calc(var(--spacing) * 3);content:var(--tw-content);padding-block:calc(var(--spacing) * 3);content:var(--tw-content);vertical-align:middle;content:var(--tw-content);font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));content:var(--tw-content);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);--tw-content:attr(data-title);content:var(--tw-content);content:var(--tw-content);display:table-cell}@media not all and (min-width:48rem){:is(:is(table.table,.table) .cbi-section-table-titles.named,:is(table.table,.table) .cbi-section-table-descr.named,:is(table.table,.table) .cbi-section-table-row[data-title]):before{padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2.5);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));flex:0 0 100%;display:flex}}:is(:is(table.table,.table) .cbi-section-table-titles.named,:is(table.table,.table) .cbi-section-table-descr.named,:is(table.table,.table) .cbi-section-table-row[data-title]):before{content:var(--tw-content)}@media (min-width:48rem){:is(:is(table.table,.table) .cbi-section-table-titles.named,:is(table.table,.table) .cbi-section-table-descr.named,:is(table.table,.table) .cbi-section-table-row[data-title]):before{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}}:is(:is(:is(table.table,.table) .cbi-section-table-titles.named,:is(table.table,.table) .cbi-section-table-descr.named,:is(table.table,.table) .cbi-section-table-row[data-title]):not([data-title]),:is(:is(table.table,.table) .cbi-section-table-titles.named,:is(table.table,.table) .cbi-section-table-descr.named,:is(table.table,.table) .cbi-section-table-row[data-title]):has(td.cbi-section-table-titles)):before{content:var(--tw-content);--tw-content:none;content:none}:is(table.table,.table) .cbi-section-table-titles.named:before{content:var(--tw-content);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));content:var(--tw-content);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);content:var(--tw-content);--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider);content:var(--tw-content);color:var(--text-subtle);content:var(--tw-content);text-transform:uppercase}@media not all and (min-width:48rem){:is(table.table,.table) tbody,:is(table.table,.table) .tbody{display:block}:is(table.table,.table) tr,:is(table.table,.table) .tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--hairline);padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * 2);flex-wrap:wrap;display:flex}:is(:is(table.table,.table) tr,:is(table.table,.table) .tr):has(.cbi-progressbar){justify-content:center;align-items:center;display:flex}}:is(:is(:is(table.table,.table) tr,:is(table.table,.table) .tr):first-child th,:is(:is(table.table,.table) tr,:is(table.table,.table) .tr):first-child .th):first-child{border-top-left-radius:calc(var(--radius-base) * 2)}:is(:is(:is(table.table,.table) tr,:is(table.table,.table) .tr):first-child th,:is(:is(table.table,.table) tr,:is(table.table,.table) .tr):first-child .th):last-child{border-top-right-radius:calc(var(--radius-base) * 2)}@media not all and (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr):last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}}:is(:is(table.table,.table) tr,:is(table.table,.table) .tr):last-child[data-title]:before{content:var(--tw-content);border-bottom-style:var(--tw-border-style);border-bottom-width:0}:is(:is(table.table,.table) tr,:is(table.table,.table) .tr):last-child .td{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media not all and (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr).table-titles,:is(:is(table.table,.table) tr,:is(table.table,.table) .tr).cbi-section-table-titles,:is(:is(table.table,.table) tr,:is(table.table,.table) .tr).cbi-section-table-descr{display:none}}:is(:is(table.table,.table) tr,:is(table.table,.table) .tr).cbi-rowstyle-1,:is(:is(table.table,.table) tr,:is(table.table,.table) .tr).cbi-rowstyle-2{background-color:#0000}@media not all and (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-1{flex:2rem}}@media (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-1{width:calc(var(--spacing) * 20);max-width:calc(var(--spacing) * 28)}}:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-2{white-space:normal}@media not all and (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-2{flex:2 2 4rem}}@media (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-2{width:calc(var(--spacing) * 32);max-width:calc(var(--spacing) * 40)}}@media not all and (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-3{flex:3 3 6rem}}@media (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-3{width:calc(var(--spacing) * 44);max-width:calc(var(--spacing) * 52)}}@media not all and (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-4{flex:4 4 8rem}}@media (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-4{width:calc(var(--spacing) * 56);max-width:calc(var(--spacing) * 64)}}@media not all and (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-5{flex:5 5 10rem}}@media (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-5{width:calc(var(--spacing) * 68);max-width:calc(var(--spacing) * 76)}}@media not all and (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-6{flex:6 6 12rem}}@media (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-6{width:calc(var(--spacing) * 80);max-width:calc(var(--spacing) * 88)}}@media not all and (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-7{flex:7 7 14rem}}@media (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-7{width:calc(var(--spacing) * 92);max-width:calc(var(--spacing) * 100)}}@media not all and (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-8{flex:8 8 16rem}}@media (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-8{width:calc(var(--spacing) * 104);max-width:calc(var(--spacing) * 112)}}@media not all and (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-9{flex:9 9 18rem}}@media (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-9{width:calc(var(--spacing) * 116);max-width:calc(var(--spacing) * 124)}}@media not all and (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-10{flex:0 0 100%;max-width:calc(100vw - 40px)}}@media (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-10{width:calc(var(--spacing) * 128);max-width:calc(var(--spacing) * 136)}}:is(table.table,.table) th,:is(table.table,.table) .th{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--hairline);background-color:var(--surface-sunken);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 3);text-align:left;font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider);color:var(--text-subtle);text-transform:uppercase}@media not all and (min-width:48rem){:is(table.table,.table) th,:is(table.table,.table) .th{border-style:var(--tw-border-style);background-color:#0000;border-width:0;flex:50%}}#cbi-samba4 :is(:is(table.table,.table) th,:is(table.table,.table) .th){padding-inline:calc(var(--spacing) * .5);padding-block:calc(var(--spacing) * 1.5)}:is(:is(table.table,.table) th,:is(table.table,.table) .th)[width="100%"]{width:100%}@media not all and (min-width:48rem){:is(:is(table.table,.table) th,:is(table.table,.table) .th)[width="100%"]{flex:0 0 100%}}:is(:is(table.table,.table) th,:is(table.table,.table) .th)[width="33%"]{width:33.3333%}@media not all and (min-width:48rem){:is(:is(table.table,.table) th,:is(table.table,.table) .th)[width="33%"]{flex:0 0 33.333%}}:is(:is(table.table,.table) th,:is(table.table,.table) .th)[data-sortable-row=true]{cursor:pointer;-webkit-user-select:none;user-select:none}:is(:is(table.table,.table) th,:is(table.table,.table) .th)[data-sortable-row=true]:after{content:var(--tw-content);margin-left:calc(var(--spacing) * .5);content:var(--tw-content);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}@media (hover:hover){:is(:is(table.table,.table) th,:is(table.table,.table) .th)[data-sortable-row=true]:hover{background-color:var(--hover-faint)}}:is(:is(table.table,.table) th,:is(table.table,.table) .th)[data-sortable-row=true][data-sort-direction=asc]:after{--tw-content:"▲";content:var(--tw-content)}:is(:is(table.table,.table) th,:is(table.table,.table) .th)[data-sortable-row=true][data-sort-direction=desc]:after{--tw-content:"▼";content:var(--tw-content)}:is(table.table,.table)[id*=status_leases] .td{max-width:calc(var(--spacing) * 62)}@media not all and (min-width:48rem){:is(table.table,.table)[id*=status_leases] .td{max-width:100%}}:is(table.table,.table) td,:is(table.table,.table) .td{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--hairline);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 3);vertical-align:middle;font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));overflow-wrap:break-word;white-space:normal;display:table-cell}@media not all and (min-width:48rem){:is(table.table,.table) td,:is(table.table,.table) .td{border-style:var(--tw-border-style);padding-inline:var(--spacing);padding-block:var(--spacing);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));border-width:0;flex:50%}}:is(:is(table.table,.table) td,:is(table.table,.table) .td):before{content:var(--tw-content);--tw-content:attr(data-title);content:var(--tw-content);content:var(--tw-content);display:none}@media not all and (min-width:48rem){:is(:is(table.table,.table) td,:is(table.table,.table) .td):before{margin-bottom:var(--spacing);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);display:block}}:is(:is(table.table,.table) td,:is(table.table,.table) .td):before{content:var(--tw-content)}@media not all and (min-width:48rem){:is(:is(table.table,.table) td,:is(table.table,.table) .td):before{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}}#cbi-samba4 :is(:is(table.table,.table) td,:is(table.table,.table) .td){padding-inline:calc(var(--spacing) * .5);padding-block:calc(var(--spacing) * 1.5)}[data-page=admin-system-mounts] :is(:is(table.table,.table) td,:is(table.table,.table) .td){max-width:calc(var(--spacing) * 104)}@media not all and (min-width:48rem){[data-page=admin-system-mounts] :is(:is(table.table,.table) td,:is(table.table,.table) .td){max-width:100%}#wifi_assoclist_table :is(:is(table.table,.table) td,:is(table.table,.table) .td){padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);flex:0 0 100%}}#wifi_assoclist_table :is(:is(table.table,.table) td,:is(table.table,.table) .td):before{content:var(--tw-content)}@media not all and (min-width:48rem){#wifi_assoclist_table :is(:is(table.table,.table) td,:is(table.table,.table) .td):before{margin-bottom:calc(var(--spacing) * 1.5)}}:is(:is(table.table,.table) td,:is(table.table,.table) .td)>input[type=text],:is(:is(table.table,.table) td,:is(table.table,.table) .td)>input[type=password],:is(:is(table.table,.table) td,:is(table.table,.table) .td) select,:is(:is(table.table,.table) td,:is(table.table,.table) .td) .cbi-dropdown:not(.btn):not(.cbi-button){width:100%}:is(:is(table.table,.table) td,:is(table.table,.table) .td) select,:is(:is(table.table,.table) td,:is(table.table,.table) .td) .cbi-dropdown:not(.btn):not(.cbi-button){min-width:fit-content}:is(:is(table.table,.table) td,:is(table.table,.table) .td).cbi-value-field{word-break:break-all}@media not all and (min-width:48rem){:is(:is(table.table,.table) td,:is(table.table,.table) .td).cbi-value-field{margin-bottom:var(--spacing);text-align:left;flex-basis:100%;align-self:flex-start}:is(:is(table.table,.table) td,:is(table.table,.table) .td).cbi-value-field[data-widget=CBI\.DummyValue],:is(:is(table.table,.table) td,:is(table.table,.table) .td).cbi-value-field[data-widget=CBI\.Button],:is(:is(table.table,.table) td,:is(table.table,.table) .td).cbi-value-field[data-widget=CBI\.FlagValue],:is(:is(table.table,.table) td,:is(table.table,.table) .td).cbi-value-field[data-widget=dvalue],:is(:is(table.table,.table) td,:is(table.table,.table) .td).cbi-value-field[data-widget=button],:is(:is(table.table,.table) td,:is(table.table,.table) .td).cbi-value-field[data-widget=fvalue]{flex-basis:50%}:is(:is(table.table,.table) td,:is(table.table,.table) .td).cbi-section-actions{flex:0 0 100%}:is(:is(table.table,.table) td,:is(table.table,.table) .td).cbi-section-actions>div{width:100%}:is(:is(table.table,.table) td,:is(table.table,.table) .td).cbi-section-actions>div>.cbi-button{flex:1}:is(:is(table.table,.table) td,:is(table.table,.table) .td)>.cbi-button{width:100%}}:is(:is(table.table,.table) td,:is(table.table,.table) .td)[width="100%"]{width:100%}@media not all and (min-width:48rem){:is(:is(table.table,.table) td,:is(table.table,.table) .td)[width="100%"]{flex:0 0 100%}}:is(:is(table.table,.table) td,:is(table.table,.table) .td)[width="33%"]{width:33.3333%}@media not all and (min-width:48rem){:is(:is(table.table,.table) td,:is(table.table,.table) .td)[width="33%"]{flex:0 0 33.333%}[data-page=admin-network-network] :is(:is(table.table,.table) td,:is(table.table,.table) .td)[data-name=_ifacebox],[data-page=admin-network-network] :is(:is(table.table,.table) td,:is(table.table,.table) .td)[data-name=_ifacestat]{flex-basis:100%}}.cbi-section-table .cbi-section-table-titles .cbi-section-table-cell{width:auto!important}#content_syslog.log-enhanced>#syslog{display:none}.syslog-view{border-radius:calc(var(--radius-base) * 3);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface-sunken);width:100%;padding:calc(var(--spacing) * 6);color:var(--text);--tw-shadow:var(--app-shadow-md);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);display:block}@media not all and (min-width:48rem){.syslog-view{padding:calc(var(--spacing) * 3)}}.syslog-view{font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed);overflow-x:auto}.syslog-view .log-row{border-radius:calc(var(--radius-base) * .75);width:max-content;min-width:100%;padding-inline:calc(var(--spacing) * 2);white-space:pre}.syslog-view .log-row:hover{background-color:var(--hover-faint)}.syslog-view ::selection{background-color:var(--info-surface);color:var(--text)}.syslog-view .log-time{color:var(--text-subtle)}@media (min-width:48rem){.syslog-view .log-time{vertical-align:bottom;white-space:nowrap;width:15ch;display:inline-block;overflow:hidden}}.syslog-view .log-sev{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide);text-transform:uppercase}@media (min-width:48rem){.syslog-view .log-sev{vertical-align:bottom;white-space:nowrap;width:7ch;display:inline-block;overflow:hidden}}.syslog-view .log-tag{color:var(--text-muted)}@media (min-width:48rem){.syslog-view .log-tag{vertical-align:bottom;text-overflow:ellipsis;white-space:nowrap;max-width:18ch;display:inline-block;overflow:hidden}}.syslog-view .lv-info .log-sev{color:var(--info)}.syslog-view .lv-notice .log-sev{color:var(--success)}.syslog-view .lv-warn .log-sev{color:var(--warning)}.syslog-view .lv-debug,.syslog-view .lv-debug .log-sev,.syslog-view .lv-debug .log-tag{color:var(--text-subtle)}.syslog-view .lv-err,.syslog-view .lv-crit{background-color:var(--danger-surface)}:is(.syslog-view .lv-err,.syslog-view .lv-crit):hover{background-color:var(--danger-surface-hover)}:is(.syslog-view .lv-err,.syslog-view .lv-crit) .log-sev{color:var(--danger)}.cbi-input-invalid,.cbi-value-error{border-color:var(--danger)!important}:is(.cbi-input-invalid,.cbi-value-error):focus{--tw-ring-color:var(--danger)!important}.cbi-value{gap:calc(var(--spacing) * 6);padding-block:calc(var(--spacing) * 1.5);flex-flow:wrap;display:flex}@media not all and (min-width:48rem){.cbi-value{gap:calc(var(--spacing) * 1.5);padding-block:var(--spacing);flex-direction:column}}.cbi-value.hidden{display:none}.cbi-value+.cbi-value{margin-top:calc(var(--spacing) * 3)}@media not all and (min-width:48rem){.cbi-value+.cbi-value{margin-top:calc(var(--spacing) * 2)}}.cbi-value>.cbi-value-title{padding-top:var(--spacing);text-align:right;--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}@media not all and (min-width:48rem){.cbi-value>.cbi-value-title{text-align:left;width:auto}}@media (min-width:48rem){.cbi-value>.cbi-value-title{flex:0 0 12rem}}.cbi-value>.cbi-value-field{flex:1;max-width:100%}.cbi-value>.cbi-value-field:has(>.cbi-dropdown[disabled]){cursor:not-allowed}.cbi-value>.cbi-value-field .cbi-value-description{margin-top:var(--spacing);padding-left:calc(var(--spacing) * 4);--tw-leading:1;overflow-wrap:break-word;color:var(--text-muted);line-height:1;position:relative}.cbi-value>.cbi-value-field .cbi-value-description:not(:empty):before{content:var(--tw-content);content:var(--tw-content);left:calc(var(--spacing) * -.5);content:var(--tw-content);content:var(--tw-content);width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4);content:var(--tw-content);background-color:var(--info);content:var(--tw-content);-webkit-mask:var(--icon-info) center/cover no-repeat;-webkit-mask:var(--icon-info) center/cover no-repeat;-webkit-mask:var(--icon-info) center/cover no-repeat;mask:var(--icon-info) center/cover no-repeat;display:inline-block;position:absolute}.cbi-value>.cbi-section,.cbi-value>.cbi-tblsection{width:100%}.cbi-dynlist{width:max-content;max-width:calc(var(--spacing) * 120);align-items:flex-start;gap:calc(var(--spacing) * 3);flex-direction:column;display:inline-flex}@media not all and (min-width:48rem){.cbi-dynlist{max-width:100%!important}}.cbi-dynlist .item{pointer-events:auto;cursor:move;align-items:flex-start;gap:calc(var(--spacing) * 2);border-radius:calc(var(--radius-base) * 2);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface);padding-block:calc(var(--spacing) * 3);padding-right:calc(var(--spacing) * 10);padding-left:calc(var(--spacing) * 4);word-break:break-all;--tw-shadow:var(--app-shadow-sm);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);transition-property:transform,box-shadow,opacity,border-color,background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;-webkit-user-select:text;user-select:text;flex-direction:column;align-self:stretch;transition-duration:.15s;display:inline-flex;position:relative;overflow:hidden}@media not all and (min-width:48rem){.cbi-dynlist .item{width:100%;padding-block:calc(var(--spacing) * 2.5);padding-right:calc(var(--spacing) * 8);padding-left:calc(var(--spacing) * 3)}}.cbi-dynlist .item:after{content:var(--tw-content);content:var(--tw-content);top:calc(var(--spacing) * 2.5);content:var(--tw-content);right:calc(var(--spacing) * 2);content:var(--tw-content);content:var(--tw-content);height:calc(var(--spacing) * 6);content:var(--tw-content);width:calc(var(--spacing) * 6);content:var(--tw-content);content:var(--tw-content);cursor:pointer;content:var(--tw-content);content:var(--tw-content);content:var(--tw-content);border-radius:calc(var(--radius-base) * 1.5);content:var(--tw-content);background-color:var(--surface-sunken);content:var(--tw-content);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));content:var(--tw-content);--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);content:var(--tw-content);color:var(--text-muted);--tw-content:"×";content:var(--tw-content);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:absolute}.cbi-dynlist .item.dragging{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y);cursor:grabbing;opacity:.5;--tw-shadow:var(--app-shadow-lg);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.cbi-dynlist .item.drag-over{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y);border-color:var(--brand);background-color:var(--brand-subtle);--tw-shadow:var(--app-shadow-md);--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-ring-color:var(--brand-subtle)}.cbi-dynlist .item>span,.cbi-dynlist .item>code{pointer-events:none;border-radius:var(--radius-base);width:100%;font-family:var(--font-mono);--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.cbi-dynlist .placeholder{word-break:break-all}.cbi-dynlist .add-item{align-items:center;gap:calc(var(--spacing) * 1.5);border-radius:calc(var(--radius-base) * 2);border-style:var(--tw-border-style);--tw-border-style:dashed;border-style:dashed;border-width:1px;border-color:var(--hairline);padding-inline:var(--spacing);padding-block:var(--spacing);transition-property:border-color,background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;background-color:#0000;align-self:stretch;transition-duration:.15s;display:inline-flex}@media (hover:hover){.cbi-dynlist .add-item:hover{border-color:var(--hairline);background-color:var(--surface-sunken)}}.cbi-dynlist .add-item>input{min-width:calc(var(--spacing) * 61);flex:1}.cbi-dynlist .add-item>.cbi-button{min-height:calc(var(--spacing) * 6);min-width:calc(var(--spacing) * 6);cursor:pointer;border-radius:calc(var(--radius-base) * 1.5);padding-inline:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);flex-shrink:0;justify-content:center;align-items:center;padding-block:0;display:inline-flex}.cbi-dynlist .add-item>.cbi-button:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.cbi-tabmenu{margin-bottom:var(--spacing);align-items:center;gap:var(--spacing);border-radius:calc(var(--radius-base) * 4);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface-sunken);padding:var(--spacing);display:flex;overflow-x:auto}.cbi-tabmenu li{flex-shrink:0;min-width:fit-content;margin:0;list-style-type:none;position:relative}.cbi-tabmenu li[data-errors]:after{content:var(--tw-content);content:var(--tw-content);top:calc(var(--spacing) * -.5);content:var(--tw-content);right:calc(var(--spacing) * -1.5);content:var(--tw-content);z-index:20;content:var(--tw-content);content:var(--tw-content);min-height:calc(var(--spacing) * 4);content:var(--tw-content);min-width:calc(var(--spacing) * 4);content:var(--tw-content);content:var(--tw-content);content:var(--tw-content);content:var(--tw-content);background-color:var(--danger);content:var(--tw-content);padding-inline:calc(var(--spacing) * 1.5);content:var(--tw-content);padding-block:calc(var(--spacing) * .5);content:var(--tw-content);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));content:var(--tw-content);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);content:var(--tw-content);color:var(--on-brand);--tw-content:attr(data-errors);content:var(--tw-content);border-radius:3.40282e38px;justify-content:center;align-items:center;display:inline-flex;position:absolute}.cbi-tabmenu li[data-errors]>a{border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline)}.cbi-tabmenu li>a{border-radius:calc(var(--radius-base) * 4);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2);text-align:center;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);white-space:nowrap;color:var(--text-muted);text-decoration-line:none;display:block}@media (hover:hover){.cbi-tabmenu li>a:hover{color:var(--text)}}.cbi-tabmenu li.cbi-tab a{background-color:var(--text);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--surface);--tw-shadow:var(--app-shadow-sm);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}[data-tab-title]{visibility:hidden;height:0;overflow:hidden}[data-tab-active=true]{visibility:visible;height:auto;overflow:visible}#tabmenu{margin-bottom:calc(var(--spacing) * 8);width:100%}.tabs{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--hairline);align-items:center;gap:0;display:flex;position:relative;overflow-x:auto}.tabs a{padding-inline:calc(var(--spacing) * 8);padding-block:calc(var(--spacing) * 4);text-align:center;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);white-space:nowrap;color:var(--text-muted);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;transition-duration:.15s;display:block}@media (hover:hover){.tabs a:hover{color:var(--text);text-decoration-line:none}}.tabs>li.active{border-bottom-style:var(--tw-border-style);border-bottom-width:2px;border-color:var(--text)}.tabs>li.active>a{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--text)}.cbi-section-node-tabbed{margin-top:calc(var(--spacing) * 6)}.cmdk-trigger{margin-right:calc(var(--spacing) * 4);width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8);cursor:pointer;border-radius:var(--radius-base);border-style:var(--tw-border-style);color:var(--text);--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;background-color:#0000;border-width:0;flex-shrink:0;place-items:center;padding:0;transition-duration:.15s;display:grid;position:relative}body:not([data-nav-type=sidebar]) .cmdk-trigger{margin-left:auto}.cmdk-trigger:before{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5);--tw-content:"";content:var(--tw-content);-webkit-mask:var(--icon-search) center/contain no-repeat;-webkit-mask:var(--icon-search) center/contain no-repeat;-webkit-mask:var(--icon-search) center/contain no-repeat;mask:var(--icon-search) center/contain no-repeat;background-color:currentColor}.cmdk-trigger:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.cmdk-trigger:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.cmdk-trigger:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-ring-color:var(--focus-ring);--tw-outline-style:none;outline-style:none}.cmdk-panel{top:calc(var(--spacing) * 24);z-index:120;--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);width:min(36rem,100vw - 2.5rem);translate:var(--tw-translate-x) var(--tw-translate-y);border-radius:calc(var(--radius-base) * 2);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:color-mix(in oklab, var(--surface) 85%, transparent);--tw-shadow:var(--app-shadow-lg);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-backdrop-blur:blur(var(--blur-xl));--tw-backdrop-saturate:saturate(150%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);transition-property:opacity,translate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;--tw-ease:var(--ease-out);transition-duration:.15s;transition-timing-function:var(--ease-out);position:fixed;left:50%;overflow:hidden}@starting-style{.cmdk-panel{--tw-translate-y:calc(var(--spacing) * -2);translate:var(--tw-translate-x) var(--tw-translate-y)}}@starting-style{.cmdk-panel{opacity:0}}@media not all and (min-width:48rem){.cmdk-panel{border-style:var(--tw-border-style);background-color:var(--bg);--tw-shadow:0 0 #0000;width:auto;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-backdrop-blur: ;-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);--tw-backdrop-saturate:saturate(100%);border-width:0;border-radius:0;flex-direction:column;display:flex;inset:0;translate:none}}.cmdk-panel .cmdk-inputrow{align-items:center;gap:calc(var(--spacing) * 3);padding-inline:calc(var(--spacing) * 5);padding-block:calc(var(--spacing) * 3.5);display:flex}@media not all and (min-width:48rem){.cmdk-panel .cmdk-inputrow{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--hairline);background-color:var(--surface);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2.5)}}.cmdk-panel .cmdk-inputrow:before{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5);color:var(--text-subtle);--tw-content:"";content:var(--tw-content);-webkit-mask:var(--icon-search) center/contain no-repeat;-webkit-mask:var(--icon-search) center/contain no-repeat;-webkit-mask:var(--icon-search) center/contain no-repeat;mask:var(--icon-search) center/contain no-repeat;background-color:currentColor;flex-shrink:0}.cmdk-panel .cmdk-inputrow .cmdk-input{border-style:var(--tw-border-style);width:100%;min-width:0;font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));color:var(--text);background-color:#0000;border-width:0;border-radius:0;flex:1;padding:0}.cmdk-panel .cmdk-inputrow .cmdk-input::placeholder{color:var(--text-subtle)}.cmdk-panel .cmdk-inputrow .cmdk-input{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.cmdk-panel .cmdk-inputrow .cmdk-input:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-outline-style:none;outline-style:none}.cmdk-panel .cmdk-inputrow .cmdk-clear{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5);cursor:pointer;border-radius:calc(var(--radius-base) * .75);border-style:var(--tw-border-style);color:var(--text-subtle);--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;background-color:#0000;border-width:0;flex-shrink:0;place-items:center;padding:0;transition-duration:.15s;display:grid}.cmdk-panel .cmdk-inputrow .cmdk-clear:before{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4);--tw-content:"";content:var(--tw-content);-webkit-mask:var(--icon-x) center/contain no-repeat;-webkit-mask:var(--icon-x) center/contain no-repeat;-webkit-mask:var(--icon-x) center/contain no-repeat;mask:var(--icon-x) center/contain no-repeat;background-color:currentColor}.cmdk-panel .cmdk-inputrow .cmdk-clear:hover{color:var(--text)}.cmdk-input:placeholder-shown~:is(.cmdk-panel .cmdk-inputrow .cmdk-clear){display:none}.cmdk-panel .cmdk-inputrow .cmdk-cancel{cursor:pointer;border-style:var(--tw-border-style);padding:var(--spacing);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--brand);--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);background-color:#0000;border-width:0;flex-shrink:0;display:none}@media not all and (min-width:48rem){.cmdk-panel .cmdk-inputrow .cmdk-cancel{display:block}}.cmdk-panel .cmdk-list{max-height:calc(var(--spacing) * 80);border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--hairline);padding:calc(var(--spacing) * 2);overflow-y:auto}.cmdk-panel .cmdk-list:empty{display:none}@media not all and (min-width:48rem){.cmdk-panel .cmdk-list{overscroll-behavior:contain;flex:1;max-height:none}}.cmdk-panel .cmdk-list .cmdk-row{align-items:center;gap:calc(var(--spacing) * 3);border-radius:calc(var(--radius-base) * 1.5);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--text);text-decoration-line:none;display:flex}.cmdk-panel .cmdk-list .cmdk-row .cmdk-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.cmdk-panel .cmdk-list .cmdk-row .cmdk-group-name{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--text-subtle);flex-shrink:0;margin-left:auto}.cmdk-panel .cmdk-list .cmdk-row mark{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--brand);background-color:#0000}.cmdk-panel .cmdk-list .cmdk-row.is-selected{background-color:var(--brand-subtle)}.cmdk-panel .cmdk-list .cmdk-row.is-selected .cmdk-title{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--brand)}.cmdk-panel .cmdk-list .cmdk-empty{padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 6);text-align:center;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--text-subtle)}.cmdk-panel .cmdk-footer{align-items:center;gap:calc(var(--spacing) * 4);border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--hairline);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--text-subtle);display:flex}@media not all and (min-width:48rem){.cmdk-panel .cmdk-footer{display:none}}.cmdk-panel .cmdk-footer .cmdk-hint-close{margin-left:auto}.cmdk-panel .cmdk-footer kbd{border-radius:calc(var(--radius-base) * .75);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface-sunken);padding-inline:calc(var(--spacing) * 1.5);font-family:var(--font-mono);color:var(--text-muted);padding-block:1px;font-size:11px}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.cmdk-panel{background-color:var(--surface)}}@media (prefers-reduced-transparency:reduce){.cmdk-panel{background-color:var(--surface)}}.hidden{display:none!important}@media (min-width:48rem){.left{text-align:left!important}}.left:not(td){text-align:left!important}@media (min-width:48rem){.right{text-align:right!important}}.right:not(td){text-align:right!important}@media (min-width:48rem){.top{vertical-align:top!important}}.top:not(td){vertical-align:top!important}@media (min-width:48rem){.bottom{vertical-align:bottom!important}}.bottom:not(td){vertical-align:bottom!important}@media (min-width:48rem){.center{text-align:center!important}}.center:not(td){text-align:center!important}@media (min-width:48rem){.middle{vertical-align:middle!important}}.middle:not(td){vertical-align:middle!important}@media (min-width:48rem){.nowrap:not(span){white-space:nowrap}}.nowrap:not(span):not(td){white-space:nowrap}@keyframes aurora-fade-in{0%{opacity:0}}.fade-in{animation:.25s both aurora-fade-in}.fade-out{pointer-events:none;opacity:0;transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.25s;transition-duration:.25s}.spinning{display:inline-block;position:relative;padding-left:calc(var(--spacing) * 8)!important}.spinning:before{content:var(--tw-content);content:var(--tw-content);content:var(--tw-content);content:var(--tw-content);width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5);content:var(--tw-content);--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y);content:var(--tw-content);animation:var(--animate-spin);content:var(--tw-content);content:var(--tw-content);-webkit-mask:var(--icon-spinning) center/cover no-repeat;-webkit-mask:var(--icon-spinning) center/cover no-repeat;-webkit-mask:var(--icon-spinning) center/cover no-repeat;mask:var(--icon-spinning) center/cover no-repeat;background-color:currentColor;position:absolute;top:50%;left:6px}#view>.spinning:first-child{min-height:calc(var(--spacing) * 48);place-items:center;width:fit-content;margin-inline:auto;display:grid}@media not all and (min-width:48rem){#view>.spinning:first-child{min-height:calc(100dvh - 4rem)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-property:none!important;animation:none!important}.spinning:before{animation:var(--animate-spin)!important}}@media (prefers-reduced-transparency:reduce){*,:before,:after{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}:root{--mega-menu-bg:var(--surface-overlay)}}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-border-spacing-x{syntax:"";inherits:false;initial-value:0}@property --tw-border-spacing-y{syntax:"";inherits:false;initial-value:0}@keyframes spin{to{transform:rotate(360deg)}} +@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-border-style:solid;--tw-duration:initial;--tw-ease:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-content:"";--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-space-y-reverse:0;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-border-spacing-x:0;--tw-border-spacing-y:0}}}@layer theme{:root,:host{--font-sans:var(--font-sans);--font-mono:var(--font-mono);--spacing:var(--spacing);--container-xs:20rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--blur-md:12px;--blur-lg:16px;--blur-xl:24px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components,utilities;:root{--bg:#f7fafc;--surface:#fff;--text:#121a22;--brand:#0085b7;--on-brand:#fff;--link:#0085b7;--info:#0e5794;--warning:#643e00;--success:#004f3e;--danger:#8d1925;--text-muted:#5f666d;--text-subtle:#7f858b;--surface-sunken:#f4f7fa;--surface-overlay:#fff;--hairline:#121a2221;--hover-faint:#ebeff2;--brand-hover:#0073a3;--brand-subtle:#ddecf5;--brand-subtle-hover:#d0dfe8;--focus-ring:#0085b799;--progress-start:#64aed5;--progress-end:#0085b7;--info-surface:#deefff;--warning-surface:#ffedd6;--success-surface:#d3f8eb;--danger-surface:#ffe8e6;--danger-surface-hover:#f9d9d7;--control-bg:#fff;--scrim:#0009;--mega-menu-bg:#f1f7fa;--mega-menu-scrim:#0d1c2a61;--app-shadow-sm:0 1px 3px #0000000f, 0 1px 2px #0000000a;--app-shadow-md:0 4px 16px #00000014, 0 1px 3px #0000000a;--app-shadow-lg:0 12px 32px #0000001f;--app-opacity-disabled:.4;--font-sans:"Lato", ui-sans-serif, system-ui, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace;--spacing:.25rem;--content-width-centered:80rem;--radius-base:.5rem}@supports (color:lab(0% 0 0)){:root{--bg:lab(98.1553% -.760227 -1.25223);--surface:lab(100% 0 0);--text:lab(8.89727% -1.68239 -6.93074);--brand:lab(51.3503% -19.237 -40.2116);--on-brand:lab(100% 0 0);--link:lab(51.3503% -19.237 -40.2116);--info:lab(35.5745% -2.86636 -40.2468);--warning:lab(30.2236% 14.0359 42.8654);--success:lab(29.3859% -35.8952 5.0677);--danger:lab(31.1495% 47.9256 25.8661);--text-muted:lab(42.8254% -1.57365 -4.8763);--text-subtle:lab(55.3248% -1.4126 -4.053);--surface-sunken:lab(97.114% -.949115 -1.56456);--surface-overlay:lab(100.011% -.760317 -1.25225);--hairline:lab(8.89727% -1.68239 -6.93074/.13);--hover-faint:lab(94.2168% -1.13726 -1.87657);--brand-hover:lab(44.3401% -18.0233 -40.0589);--brand-subtle:lab(92.5794% -3.9458 -6.17858);--brand-subtle-hover:lab(87.9391% -3.94133 -6.17628);--focus-ring:lab(51.3503% -19.237 -40.2116/.6);--progress-start:lab(67.4852% -15.7175 -27.197);--progress-end:lab(51.3503% -19.237 -40.2116);--info-surface:lab(93.5628% -4.16487 -14.7881);--warning-surface:lab(94.8007% 4.75499 15.6111);--success-surface:lab(94.7525% -14.2308 2.09508);--danger-surface:lab(93.849% 11.2841 5.29771);--danger-surface-hover:lab(89.2089% 11.2856 5.30034);--control-bg:lab(100.011% -.760317 -1.25225);--scrim:lab(0% 0 0/.6);--mega-menu-bg:lab(96.7742% -1.51286 -2.50006);--mega-menu-scrim:lab(9.40633% -2.1807 -11.9349/.38);--app-shadow-sm:0 1px 3px lab(0% 0 0/.06), 0 1px 2px lab(0% 0 0/.04);--app-shadow-md:0 4px 16px lab(0% 0 0/.08), 0 1px 3px lab(0% 0 0/.04);--app-shadow-lg:0 12px 32px lab(0% 0 0/.12)}}[data-darkmode=true]{--bg:#05070e;--surface:#141822;--text:#f9fafb;--brand:#00958e;--on-brand:#fff;--link:#00958e;--info:#90c1ff;--warning:#f0ba59;--success:#51bd85;--danger:#f17070;--text-muted:#909297;--text-subtle:#5d6067;--surface-sunken:#0a0e17;--surface-overlay:#181d27;--hairline:#f9fafb1a;--hover-faint:#f9fafb0d;--brand-hover:#00837d;--brand-subtle:#061a20;--brand-subtle-hover:#0f242a;--focus-ring:#00958e99;--progress-start:#006261;--progress-end:#00958e;--info-surface:#21344c;--warning-surface:#45310b;--success-surface:#153524;--danger-surface:#541f20;--danger-surface-hover:#602a2a;--control-bg:#0a0e17;--scrim:#0009;--mega-menu-bg:#0a0e17;--mega-menu-scrim:#00000080;--app-shadow-sm:0 4px 12px #0000004d;--app-shadow-md:0 10px 28px #0000006b;--app-shadow-lg:0 20px 48px #0000008c;--app-opacity-disabled:.3}@supports (color:lab(0% 0 0)){[data-darkmode=true]{--bg:lab(1.93894% .0855997 -3.22397);--surface:lab(8.24713% -.0405461 -7.31381);--text:lab(98.252% -.0618994 -.756907);--brand:lab(55.0978% -44.5567 -7.62978);--on-brand:lab(100% 0 0);--link:lab(55.0978% -44.5567 -7.62978);--info:lab(76.3382% -4.43128 -38.7);--warning:lab(79.1996% 12.6808 55.9505);--success:lab(69.2339% -42.392 18.6731);--danger:lab(63.5705% 50.8105 25.3639);--text-muted:lab(60.5379% -.225931 -3.05105);--text-subtle:lab(40.6865% -.278354 -4.23647);--surface-sunken:lab(3.9802% .0812709 -5.64623);--surface-overlay:lab(10.5702% -.0939444 -7.33123);--hairline:lab(98.252% -.0618994 -.756907/.1);--hover-faint:lab(98.252% -.0618994 -.756907/.05);--brand-hover:lab(49.2976% -44.6964 -7.56882);--brand-subtle:lab(7.95734% -6.34954 -6.72844);--brand-subtle-hover:lab(12.602% -6.92477 -6.76408);--focus-ring:lab(55.0986% -44.5682 -7.59286/.6);--progress-start:lab(36.8833% -28.7182 -7.50749);--progress-end:lab(55.0978% -44.5567 -7.62978);--info-surface:lab(20.893% -1.69295 -17.5199);--warning-surface:lab(22.2973% 6.18184 26.7927);--success-surface:lab(19.4608% -16.2551 7.16286);--danger-surface:lab(20.3014% 25.4342 12.827);--danger-surface-hover:lab(24.9464% 25.3964 12.6412);--control-bg:lab(3.9802% .0812709 -5.64623);--scrim:lab(0% 0 0/.6);--mega-menu-bg:lab(3.9802% .0812709 -5.64623);--mega-menu-scrim:lab(0% 0 0/.5);--app-shadow-sm:0 4px 12px lab(0% 0 0/.3);--app-shadow-md:0 10px 28px lab(0% 0 0/.42);--app-shadow-lg:0 20px 48px lab(0% 0 0/.55)}}:root{--icon-activity:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M3%2012h4l3%208l4%20-16l3%208h4'%20/%3e%3c/svg%3e");--icon-adjustments:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M4%2010a2%202%200%201%200%204%200a2%202%200%200%200%20-4%200'%20/%3e%3cpath%20d='M6%204v4'%20/%3e%3cpath%20d='M6%2012v8'%20/%3e%3cpath%20d='M10%2016a2%202%200%201%200%204%200a2%202%200%200%200%20-4%200'%20/%3e%3cpath%20d='M12%204v10'%20/%3e%3cpath%20d='M12%2018v2'%20/%3e%3cpath%20d='M16%207a2%202%200%201%200%204%200a2%202%200%200%200%20-4%200'%20/%3e%3cpath%20d='M18%204v1'%20/%3e%3cpath%20d='M18%209v11'%20/%3e%3c/svg%3e");--icon-apps:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M4%205a1%201%200%200%201%201%20-1h4a1%201%200%200%201%201%201v4a1%201%200%200%201%20-1%201h-4a1%201%200%200%201%20-1%20-1l0%20-4'%20/%3e%3cpath%20d='M4%2015a1%201%200%200%201%201%20-1h4a1%201%200%200%201%201%201v4a1%201%200%200%201%20-1%201h-4a1%201%200%200%201%20-1%20-1l0%20-4'%20/%3e%3cpath%20d='M14%2015a1%201%200%200%201%201%20-1h4a1%201%200%200%201%201%201v4a1%201%200%200%201%20-1%201h-4a1%201%200%200%201%20-1%20-1l0%20-4'%20/%3e%3cpath%20d='M14%207l6%200'%20/%3e%3cpath%20d='M17%204l0%206'%20/%3e%3c/svg%3e");--icon-arrow-down:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2020%2020'%20width='24'%20height='24'%20fill='%23000000'%20style='opacity:1;'%3e%3cpath%20fill-rule='evenodd'%20d='M5.22%208.22a.75.75%200%200%201%201.06%200L10%2011.94l3.72-3.72a.75.75%200%201%201%201.06%201.06l-4.25%204.25a.75.75%200%200%201-1.06%200L5.22%209.28a.75.75%200%200%201%200-1.06'%20clip-rule='evenodd'/%3e%3c/svg%3e");--icon-arrow-down-dark:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2020%2020'%20width='24'%20height='24'%20fill='%23ffffff'%20style='opacity:1;'%3e%3cpath%20fill-rule='evenodd'%20d='M5.22%208.22a.75.75%200%200%201%201.06%200L10%2011.94l3.72-3.72a.75.75%200%201%201%201.06%201.06l-4.25%204.25a.75.75%200%200%201-1.06%200L5.22%209.28a.75.75%200%200%201%200-1.06'%20clip-rule='evenodd'/%3e%3c/svg%3e");--icon-arrow-right:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2020%2020'%20width='24'%20height='24'%20fill='%23000000'%20style='opacity:1;'%3e%3cpath%20fill-rule='evenodd'%20d='M8.22%205.22a.75.75%200%200%201%201.06%200l4.25%204.25a.75.75%200%200%201%200%201.06l-4.25%204.25a.75.75%200%200%201-1.06-1.06L11.94%2010L8.22%206.28a.75.75%200%200%201%200-1.06'%20clip-rule='evenodd'/%3e%3c/svg%3e");--icon-box:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M12%203l8%204.5l0%209l-8%204.5l-8%20-4.5l0%20-9l8%20-4.5'%20/%3e%3cpath%20d='M12%2012l8%20-4.5'%20/%3e%3cpath%20d='M12%2012l0%209'%20/%3e%3cpath%20d='M12%2012l-8%20-4.5'%20/%3e%3c/svg%3e");--icon-category:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M4%204h6v6h-6l0%20-6'%20/%3e%3cpath%20d='M14%204h6v6h-6l0%20-6'%20/%3e%3cpath%20d='M4%2014h6v6h-6l0%20-6'%20/%3e%3cpath%20d='M14%2017a3%203%200%201%200%206%200a3%203%200%201%200%20-6%200'%20/%3e%3c/svg%3e");--icon-chart-bar:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M3%2013a1%201%200%200%201%201%20-1h4a1%201%200%200%201%201%201v6a1%201%200%200%201%20-1%201h-4a1%201%200%200%201%20-1%20-1l0%20-6'%20/%3e%3cpath%20d='M15%209a1%201%200%200%201%201%20-1h4a1%201%200%200%201%201%201v10a1%201%200%200%201%20-1%201h-4a1%201%200%200%201%20-1%20-1l0%20-10'%20/%3e%3cpath%20d='M9%205a1%201%200%200%201%201%20-1h4a1%201%200%200%201%201%201v14a1%201%200%200%201%20-1%201h-4a1%201%200%200%201%20-1%20-1l0%20-14'%20/%3e%3cpath%20d='M4%2020h14'%20/%3e%3c/svg%3e");--icon-check:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%201024'%3e%3cpath%20d='M918.8%2083.7c-43.5-30.3-104-19.5-134.6%2024.1l-425.8%20606-127-135.7c-36.4-38.9-98.1-41.1-137-4.8-39%2036.2-41.1%2097.7-4.7%20136.6l206.5%20220.7c4.7%205%209.8%209.4%2015.1%2013.1.7.5%201.4%201%202.2%201.5%2043.5%2030.3%20104%2019.5%20134.6-24.1l494-703.2c30.7-43.5%2020.1-103.9-23.3-134.2z'/%3e%3c/svg%3e");--icon-cpu:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M5%206a1%201%200%200%201%201%20-1h12a1%201%200%200%201%201%201v12a1%201%200%200%201%20-1%201h-12a1%201%200%200%201%20-1%20-1l0%20-12'%20/%3e%3cpath%20d='M9%209h6v6h-6l0%20-6'%20/%3e%3cpath%20d='M3%2010h2'%20/%3e%3cpath%20d='M3%2014h2'%20/%3e%3cpath%20d='M10%203v2'%20/%3e%3cpath%20d='M14%203v2'%20/%3e%3cpath%20d='M21%2010h-2'%20/%3e%3cpath%20d='M21%2014h-2'%20/%3e%3cpath%20d='M14%2021v-2'%20/%3e%3cpath%20d='M10%2021v-2'%20/%3e%3c/svg%3e");--icon-error:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M12%209v4'%20/%3e%3cpath%20d='M10.363%203.591l-8.106%2013.534a1.914%201.914%200%200%200%201.636%202.871h16.214a1.914%201.914%200%200%200%201.636%20-2.87l-8.106%20-13.536a1.914%201.914%200%200%200%20-3.274%200'%20/%3e%3cpath%20d='M12%2016h.01'%20/%3e%3c/svg%3e");--icon-gauge:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M3%2012a9%209%200%201%200%2018%200a9%209%200%201%200%20-18%200'%20/%3e%3cpath%20d='M11%2012a1%201%200%201%200%202%200a1%201%200%201%200%20-2%200'%20/%3e%3cpath%20d='M13.41%2010.59l2.59%20-2.59'%20/%3e%3cpath%20d='M7%2012a5%205%200%200%201%205%20-5'%20/%3e%3c/svg%3e");--icon-info:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2016%2016'%20width='24'%20height='24'%20fill='%23000000'%20style='opacity:1;'%3e%3cpath%20fill-rule='evenodd'%20d='M15%208A7%207%200%201%201%201%208a7%207%200%200%201%2014%200M9%205a1%201%200%201%201-2%200a1%201%200%200%201%202%200M6.75%208a.75.75%200%200%200%200%201.5h.75v1.75a.75.75%200%200%200%201.5%200v-2.5A.75.75%200%200%200%208.25%208z'%20clip-rule='evenodd'/%3e%3c/svg%3e");--icon-package:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M12%203l8%204.5l0%209l-8%204.5l-8%20-4.5l0%20-9l8%20-4.5'%20/%3e%3cpath%20d='M12%2012l8%20-4.5'%20/%3e%3cpath%20d='M12%2012l0%209'%20/%3e%3cpath%20d='M12%2012l-8%20-4.5'%20/%3e%3cpath%20d='M16%205.25l-8%204.5'%20/%3e%3c/svg%3e");--icon-phone:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M5%204h4l2%205l-2.5%201.5a11%2011%200%200%200%205%205l1.5%20-2.5l5%202v4a2%202%200%200%201%20-2%202a16%2016%200%200%201%20-15%20-15a2%202%200%200%201%202%20-2'%20/%3e%3c/svg%3e");--icon-radio:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='currentColor'%3e%3ccircle%20cx='12'%20cy='12'%20r='6'/%3e%3c/svg%3e");--icon-refresh:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M20%2011a8.1%208.1%200%200%200%20-15.5%20-2m-.5%20-4v4h4'%20/%3e%3cpath%20d='M4%2013a8.1%208.1%200%200%200%2015.5%202m.5%204v-4h-4'%20/%3e%3c/svg%3e");--icon-refresh-off:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M20%2011a8.1%208.1%200%200%200%20-11.271%20-6.305m-2.41%201.624a8.083%208.083%200%200%200%20-1.819%202.681m-.5%20-4v4h4'%20/%3e%3cpath%20d='M4%2013a8.1%208.1%200%200%200%2013.671%204.691m2.329%20-1.691v-1h-1'%20/%3e%3cpath%20d='M3%203l18%2018'%20/%3e%3c/svg%3e");--icon-router:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M3%2015a2%202%200%200%201%202%20-2h14a2%202%200%200%201%202%202v4a2%202%200%200%201%20-2%202h-14a2%202%200%200%201%20-2%20-2l0%20-4'%20/%3e%3cpath%20d='M17%2017l0%20.01'%20/%3e%3cpath%20d='M13%2017l0%20.01'%20/%3e%3cpath%20d='M15%2013l0%20-2'%20/%3e%3cpath%20d='M11.75%208.75a4%204%200%200%201%206.5%200'%20/%3e%3cpath%20d='M8.5%206.5a8%208%200%200%201%2013%200'%20/%3e%3c/svg%3e");--icon-search:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M10%2010m-7%200a7%207%200%201%200%2014%200a7%207%200%201%200%20-14%200'%20/%3e%3cpath%20d='M21%2021l-6%20-6'%20/%3e%3c/svg%3e");--icon-server:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M3%207a3%203%200%200%201%203%20-3h12a3%203%200%200%201%203%203v2a3%203%200%200%201%20-3%203h-12a3%203%200%200%201%20-3%20-3v-2'%20/%3e%3cpath%20d='M3%2015a3%203%200%200%201%203%20-3h12a3%203%200%200%201%203%203v2a3%203%200%200%201%20-3%203h-12a3%203%200%200%201%20-3%20-3l0%20-2'%20/%3e%3cpath%20d='M7%208l0%20.01'%20/%3e%3cpath%20d='M7%2016l0%20.01'%20/%3e%3cpath%20d='M11%208h6'%20/%3e%3cpath%20d='M11%2016h6'%20/%3e%3c/svg%3e");--icon-settings:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M10.325%204.317c.426%20-1.756%202.924%20-1.756%203.35%200a1.724%201.724%200%200%200%202.573%201.066c1.543%20-.94%203.31%20.826%202.37%202.37a1.724%201.724%200%200%200%201.065%202.572c1.756%20.426%201.756%202.924%200%203.35a1.724%201.724%200%200%200%20-1.066%202.573c.94%201.543%20-.826%203.31%20-2.37%202.37a1.724%201.724%200%200%200%20-2.572%201.065c-.426%201.756%20-2.924%201.756%20-3.35%200a1.724%201.724%200%200%200%20-2.573%20-1.066c-1.543%20.94%20-3.31%20-.826%20-2.37%20-2.37a1.724%201.724%200%200%200%20-1.065%20-2.572c-1.756%20-.426%20-1.756%20-2.924%200%20-3.35a1.724%201.724%200%200%200%201.066%20-2.573c-.94%20-1.543%20.826%20-3.31%202.37%20-2.37c1%20.608%202.296%20.07%202.572%20-1.065'%20/%3e%3cpath%20d='M9%2012a3%203%200%201%200%206%200a3%203%200%200%200%20-6%200'%20/%3e%3c/svg%3e");--icon-shield:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M12%203a12%2012%200%200%200%208.5%203a12%2012%200%200%201%20-8.5%2015a12%2012%200%200%201%20-8.5%20-15a12%2012%200%200%200%208.5%20-3'%20/%3e%3c/svg%3e");--icon-spinning:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%201024'%3e%3cpath%20opacity='.05'%20d='M512%2085.333c235.648%200%20426.667%20191.019%20426.667%20426.667S747.648%20938.667%20512%20938.667%2085.333%20747.648%2085.333%20512%20276.352%2085.333%20512%2085.333zm0%20128a298.667%20298.667%200%201%200%200%20597.334%20298.667%20298.667%200%200%200%200-597.334z'/%3e%3cpath%20d='M813.696%20813.696c166.613-166.613%20166.613-436.779%200-603.392s-436.779-166.613-603.392%200a64%2064%200%200%200%2090.496%2090.496%20298.667%20298.667%200%201%201%20422.4%20422.4%2064%2064%200%200%200%2090.496%2090.496z'/%3e%3c/svg%3e");--icon-tag:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M6.5%207.5a1%201%200%201%200%202%200a1%201%200%201%200%20-2%200'%20/%3e%3cpath%20d='M3%206v5.172a2%202%200%200%200%20.586%201.414l7.71%207.71a2.41%202.41%200%200%200%203.408%200l5.592%20-5.592a2.41%202.41%200%200%200%200%20-3.408l-7.71%20-7.71a2%202%200%200%200%20-1.414%20-.586h-5.172a3%203%200%200%200%20-3%203'%20/%3e%3c/svg%3e");--icon-world:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M3%2012a9%209%200%201%200%2018%200a9%209%200%200%200%20-18%200'%20/%3e%3cpath%20d='M3.6%209h16.8'%20/%3e%3cpath%20d='M3.6%2015h16.8'%20/%3e%3cpath%20d='M11.5%203a17%2017%200%200%200%200%2018'%20/%3e%3cpath%20d='M12.5%203a17%2017%200%200%201%200%2018'%20/%3e%3c/svg%3e");--icon-x:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20d='M18%206l-12%2012'%20/%3e%3cpath%20d='M6%206l12%2012'%20/%3e%3c/svg%3e")}html{background-color:var(--bg);min-height:100dvh;font-family:var(--font-sans)}html body{background-color:var(--bg);min-height:100dvh}:not(html){scrollbar-width:thin;scrollbar-color:var(--text-muted) transparent}html{scrollbar-width:thin;scrollbar-color:var(--text-muted) var(--surface)}html body{min-height:100dvh;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed);--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal);color:var(--text);flex-direction:column;display:flex;position:relative}html body.modal-overlay-active{height:100vh;overflow:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);--tw-leading:var(--leading-tight);line-height:var(--leading-tight);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight);color:var(--text)}h1{margin-bottom:calc(var(--spacing) * 4);padding-left:calc(var(--spacing) * 6);font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}@media not all and (min-width:48rem){h1{padding-left:calc(var(--spacing) * 4);font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}}h2{margin-bottom:calc(var(--spacing) * 4);padding-left:calc(var(--spacing) * 5);font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}@media not all and (min-width:48rem){h2{margin-bottom:calc(var(--spacing) * 2);padding-left:calc(var(--spacing) * 4);font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}}h3{margin-bottom:calc(var(--spacing) * 4);font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}@media not all and (min-width:48rem){h3{margin-bottom:calc(var(--spacing) * 2);font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}}h4{margin-bottom:calc(var(--spacing) * 2);font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}@media not all and (min-width:48rem){h4{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}}h5{margin-bottom:calc(var(--spacing) * 2);font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}@media not all and (min-width:48rem){h5{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}h6{margin-bottom:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}@media not all and (min-width:48rem){h6{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}}hr{border-style:var(--tw-border-style);border-width:0}strong{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}abbr{cursor:help}p{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed);color:var(--text)}pre{border-radius:calc(var(--radius-base) * 1.5);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface-sunken);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed);overflow-wrap:break-word;white-space:pre-wrap;color:var(--text-muted);display:block}code{border-radius:calc(var(--radius-base) * .5);background-color:var(--surface-sunken);padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing);font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--text-muted)}a{color:var(--link);text-decoration-line:none}@media (hover:hover){a:hover{text-decoration-line:underline}}var{font-family:var(--font-mono);color:var(--link)}small{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal);color:var(--text)}em{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--text-muted);font-style:italic}header{z-index:40;margin-bottom:calc(var(--spacing) * 2);background-color:var(--bg);position:sticky;top:0}header .header-content{z-index:10;height:calc(var(--spacing) * 14);padding-inline:calc(var(--spacing) * 6);padding-block:calc(var(--spacing) * 3);justify-content:space-between;align-items:center;display:flex;position:relative}@media not all and (min-width:48rem){header .header-content{padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2)}}[data-nav-type=mega-menu] :is(header) .desktop-menu-container{pointer-events:none;visibility:hidden;z-index:0;height:calc(var(--mega-menu-height,0px) + 3.5rem + 3rem);inset-inline:0;width:100%;position:absolute;top:0;overflow:clip}@media not all and (min-width:48rem){[data-nav-type=mega-menu] :is(header) .desktop-menu-container{display:none}}[data-nav-type=mega-menu] :is(header) .desktop-menu-container.active,[data-nav-type=mega-menu] :is(header) .desktop-menu-container.closing{visibility:visible}[data-nav-type=mega-menu] :is(header) .desktop-menu-container.active{pointer-events:auto}[data-nav-type=mega-menu] :is(header) .desktop-menu-container.closing{opacity:0;transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.22s;--tw-ease:cubic-bezier(.4,0,.6,1);transition-duration:.22s;transition-timing-function:cubic-bezier(.4,0,.6,1)}@media (prefers-reduced-motion:reduce){[data-nav-type=mega-menu] :is(header) .desktop-menu-container.closing{transition-property:none}}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-menu-sheet{height:calc(var(--mega-menu-height,0px) + 3.5rem);--tw-translate-y:-100%;translate:var(--tw-translate-x) var(--tw-translate-y);background-color:var(--mega-menu-bg);transition-property:translate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:var(--mega-menu-duration,.3s);transition-duration:var(--mega-menu-duration,.3s);--tw-ease:cubic-bezier(.4,0,.6,1);inset-inline:0;transition-timing-function:cubic-bezier(.4,0,.6,1);position:absolute;top:0;overflow:hidden}@media (prefers-reduced-motion:reduce){[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-menu-sheet{transition-property:none}}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-menu-sheet:after{content:var(--tw-content);pointer-events:none;content:var(--tw-content);content:var(--tw-content);content:var(--tw-content);border-bottom-style:var(--tw-border-style);content:var(--tw-content);border-bottom-width:1px;border-color:var(--hairline);content:var(--tw-content);--tw-shadow:var(--app-shadow-lg);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);content:var(--tw-content);transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));content:var(--tw-content);--tw-duration:var(--mega-menu-duration,.3s);transition-duration:var(--mega-menu-duration,.3s);--tw-content:"";content:var(--tw-content);position:absolute;inset:0}@media (prefers-reduced-motion:reduce){[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-menu-sheet:after{content:var(--tw-content);transition-property:none}}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-menu-canvas{--tw-translate-y:100%;translate:var(--tw-translate-x) var(--tw-translate-y);transition-property:translate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:var(--mega-menu-duration,.3s);transition-duration:var(--mega-menu-duration,.3s);--tw-ease:cubic-bezier(.4,0,.6,1);transition-timing-function:cubic-bezier(.4,0,.6,1);position:absolute;inset:0}@media (prefers-reduced-motion:reduce){[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-menu-canvas{transition-property:none}}[data-nav-type=mega-menu] :is(header) .desktop-menu-container.active .desktop-menu-sheet,[data-nav-type=mega-menu] :is(header) .desktop-menu-container.active .desktop-menu-canvas{--tw-translate-y:0;translate:var(--tw-translate-x) var(--tw-translate-y)}[data-nav-type=mega-menu] :is(header) .desktop-menu-container.closing .desktop-menu-sheet:after{content:var(--tw-content);opacity:0}[data-nav-type=mega-menu] :is(header) .desktop-menu-container>.desktop-menu-board{display:none}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav{pointer-events:none;inset-inline:0;top:calc(var(--spacing) * 14);--tw-translate-y:calc(var(--spacing) * 1.5);max-width:72rem;max-height:calc(100dvh - 3.5rem);translate:var(--tw-translate-x) var(--tw-translate-y);column-gap:calc(var(--spacing) * 8);overscroll-behavior:contain;padding-inline:calc(var(--spacing) * 10);padding-top:calc(var(--spacing) * 13);padding-bottom:calc(var(--spacing) * 8);opacity:0;transition-property:opacity,translate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.25s;--tw-ease:var(--ease-out);transition-duration:.25s;transition-timing-function:var(--ease-out);grid-template-columns:12rem minmax(0,1fr) 13rem;margin-inline:auto;display:grid;position:absolute;overflow-y:auto}@media not all and (min-width:64rem){[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav{max-width:44rem;padding-inline:calc(var(--spacing) * 8);grid-template-columns:repeat(1,minmax(0,1fr))}}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav.active{pointer-events:auto;--tw-translate-y:0;translate:var(--tw-translate-x) var(--tw-translate-y);opacity:1}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-nav-anchor{align-self:flex-start}@media not all and (min-width:64rem){[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-nav-anchor{display:none}}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-nav-anchor .desktop-nav-title{align-items:center;gap:calc(var(--spacing) * 2.5);font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight);color:var(--text);display:flex}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-nav-anchor .desktop-nav-title:before{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6);--tw-content:"";content:var(--tw-content);-webkit-mask:var(--menu-icon,var(--icon-category)) center/contain no-repeat;-webkit-mask:var(--menu-icon,var(--icon-category)) center/contain no-repeat;-webkit-mask:var(--menu-icon,var(--icon-category)) center/contain no-repeat;mask:var(--menu-icon,var(--icon-category)) center/contain no-repeat;background-color:currentColor;flex-shrink:0}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-nav-list{grid-auto-flow:column;grid-template-rows:repeat(var(--menu-rows,6),auto);place-content:flex-start;column-gap:calc(var(--spacing) * 8);row-gap:var(--spacing);display:grid}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-nav-list>li{margin:0;list-style-type:none}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-nav-list>li>a{border-radius:calc(var(--radius-base) * 1.5);width:fit-content;padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));white-space:nowrap;color:var(--text);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;text-decoration-line:none;transition-duration:.15s;display:block}@media (hover:hover){[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-nav-list>li>a:hover{background-color:var(--hover-faint)}}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-nav-list>li>a.is-active-page{background-color:var(--brand-subtle);--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--brand)}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-menu-board{gap:calc(var(--spacing) * 2);border-left-style:var(--tw-border-style);border-left-width:1px;border-color:var(--hairline);padding-left:calc(var(--spacing) * 7);flex-direction:column;align-self:flex-start;display:flex}@media not all and (min-width:64rem){[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-menu-board{display:none}}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-menu-board .board-label{margin-bottom:calc(var(--spacing) * .5);--tw-font-weight:var(--font-weight-medium);font-size:11px;font-weight:var(--font-weight-medium);--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide);color:var(--text-subtle);text-transform:uppercase}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-menu-board .board-line{align-items:flex-start;gap:calc(var(--spacing) * 2.5);max-width:100%;font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--text-muted);display:flex}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-menu-board .board-line:before{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4);--tw-content:"";content:var(--tw-content);background-color:currentColor;flex-shrink:0}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-menu-board .board-line .board-text{--tw-leading:calc(var(--spacing) * 4);min-width:0;line-height:calc(var(--spacing) * 4);overflow-wrap:anywhere}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-menu-board .board-line-host:before{-webkit-mask:var(--icon-router) center/contain no-repeat;-webkit-mask:var(--icon-router) center/contain no-repeat;-webkit-mask:var(--icon-router) center/contain no-repeat;mask:var(--icon-router) center/contain no-repeat}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-menu-board .board-line-model:before{-webkit-mask:var(--icon-cpu) center/contain no-repeat;-webkit-mask:var(--icon-cpu) center/contain no-repeat;-webkit-mask:var(--icon-cpu) center/contain no-repeat;mask:var(--icon-cpu) center/contain no-repeat}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-menu-board .board-line-firmware:before{-webkit-mask:var(--icon-package) center/contain no-repeat;-webkit-mask:var(--icon-package) center/contain no-repeat;-webkit-mask:var(--icon-package) center/contain no-repeat;mask:var(--icon-package) center/contain no-repeat}[data-nav-type=mega-menu] :is(header) .desktop-menu-container .desktop-nav .desktop-menu-board .board-line-kernel:before{-webkit-mask:var(--icon-tag) center/contain no-repeat;-webkit-mask:var(--icon-tag) center/contain no-repeat;-webkit-mask:var(--icon-tag) center/contain no-repeat;mask:var(--icon-tag) center/contain no-repeat}[data-nav-type=mega-menu] :is(header):has(.desktop-menu-container:is(.active,.closing)){z-index:70}header .brand{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight);color:var(--text);transition-property:color,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;flex-shrink:0;text-decoration-line:none;transition-duration:.15s;display:inline-block}@media (hover:hover){header .brand:hover{--tw-translate-y:calc(var(--spacing) * -.5);translate:var(--tw-translate-x) var(--tw-translate-y);color:var(--brand)}}@media not all and (min-width:48rem){header .brand{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));flex:1}}@media (min-width:48rem){[data-nav-type=sidebar] :is(header .brand){display:none}[data-nav-type=sidebar].sidebar-collapsed :is(header .brand){transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;transition-duration:.15s;display:inline-block}@starting-style{[data-nav-type=sidebar].sidebar-collapsed :is(header .brand){opacity:0}}}header .nav{z-index:60;--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y);transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);align-items:center;gap:var(--spacing);margin:0;padding:0;list-style-type:none;display:flex;position:absolute;left:50%}@media not all and (min-width:48rem){header .nav{display:none}}header .nav>li{position:relative}header .nav>li .menu{border-radius:calc(var(--radius-base) * 1.5);padding-inline:calc(var(--spacing) * 3.5);padding-block:calc(var(--spacing) * 1.5);--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--text);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;text-decoration-line:none;transition-duration:.15s;display:block}@media (hover:hover){header .nav>li .menu:hover{background-color:var(--hover-faint)}}header .nav>li .menu.menu-active{background-color:var(--brand-subtle);color:var(--brand)}header .nav>li .desktop-nav{pointer-events:none;z-index:40;opacity:0;transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;padding-inline:0;padding-top:0;transition-duration:.15s;left:0}[data-nav-type=dropdown] :is(header .nav>li .desktop-nav){margin-top:calc(var(--spacing) * 2);min-width:calc(var(--spacing) * 48);position:absolute;top:100%}header .nav>li .desktop-nav.active{pointer-events:auto;opacity:1}[data-nav-type=dropdown] :is(header .nav>li .desktop-nav .desktop-nav-list){row-gap:var(--spacing);border-radius:calc(var(--radius-base) * 3);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface-overlay);padding-block:calc(var(--spacing) * 2);--tw-shadow:var(--app-shadow-md);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-backdrop-blur:blur(var(--blur-md));--tw-backdrop-saturate:saturate(150%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);flex-direction:column;display:flex}header .nav>li .desktop-nav .desktop-nav-list>li{margin:0;list-style-type:none}header .nav>li .desktop-nav .desktop-nav-list>li>a{white-space:nowrap;color:var(--text);text-decoration-line:none;display:block}[data-nav-type=dropdown] :is(header .nav>li .desktop-nav .desktop-nav-list>li>a){margin-inline:calc(var(--spacing) * 2);border-radius:calc(var(--radius-base) * 1.5);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;transition-duration:.15s}@media (hover:hover){[data-nav-type=dropdown] :is(header .nav>li .desktop-nav .desktop-nav-list>li>a):hover{background-color:var(--hover-faint)}}header .nav>li .desktop-nav .desktop-nav-list>li>a.is-active-page{background-color:var(--brand-subtle);--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--brand)}header .navigation-controls{margin-right:calc(var(--spacing) * 3);flex-shrink:0;align-items:center;display:flex}@media (min-width:48rem){header .navigation-controls{display:none}[data-nav-type=sidebar] :is(header .navigation-controls){display:flex}[data-nav-type=sidebar]:not(.sidebar-collapsed) :is(header .navigation-controls) .navigation-toggle-line-bottom{stroke-dasharray:15 15}}header .navigation-controls .navigation-toggle{cursor:pointer;border-style:var(--tw-border-style);--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;background-color:#0000;border-width:0;border-radius:0;padding:0;transition-duration:.15s}@media (hover:hover){header .navigation-controls .navigation-toggle:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}}header .navigation-controls .navigation-toggle:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}header .navigation-controls .navigation-toggle svg{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5);color:var(--text)}header .navigation-controls .navigation-toggle .navigation-toggle-line{transform-box:fill-box;transform-origin:50%;transition-property:transform,opacity,stroke-dasharray;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;--tw-ease:var(--ease-in-out);transition-duration:.15s;transition-timing-function:var(--ease-in-out)}@media (min-width:48rem){[data-nav-type=sidebar] :is(header .navigation-controls .navigation-toggle .navigation-toggle-line){--tw-duration:.25s;transition-duration:.25s}}header .navigation-controls .navigation-toggle .navigation-toggle-line-bottom{stroke-dasharray:7.5 15}header .navigation-controls .navigation-toggle.is-expanded .navigation-toggle-line-top{transform:translateY(5px)rotate(45deg)}header .navigation-controls .navigation-toggle.is-expanded .navigation-toggle-line-middle{opacity:0;transform:scaleX(.35)}header .navigation-controls .navigation-toggle.is-expanded .navigation-toggle-line-bottom{stroke-dasharray:15 15;transform:translateY(-5px)rotate(-45deg)}header #indicators{gap:calc(var(--spacing) * 5);flex-direction:row-reverse;flex-shrink:0;display:flex}@media (min-width:48rem){header #indicators{gap:calc(var(--spacing) * 8)}}header #indicators span[data-indicator]{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5);cursor:pointer;transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;font-size:0;transition-duration:.15s}header #indicators span[data-indicator]:before{content:var(--tw-content);content:var(--tw-content);width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5);content:var(--tw-content);content:var(--tw-content);color:var(--text);background-color:currentColor;position:absolute}@media (hover:hover){header #indicators span[data-indicator]:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}}header #indicators span[data-indicator]:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}header #indicators span[data-indicator][data-indicator=media_error]:before{content:var(--tw-content);-webkit-mask:var(--icon-error) center/cover no-repeat;-webkit-mask:var(--icon-error) center/cover no-repeat;-webkit-mask:var(--icon-error) center/cover no-repeat;mask:var(--icon-error) center/cover no-repeat}header #indicators span[data-indicator][data-indicator=poll-status][data-style=active]:before{content:var(--tw-content);-webkit-mask:var(--icon-refresh) center/cover no-repeat;-webkit-mask:var(--icon-refresh) center/cover no-repeat;-webkit-mask:var(--icon-refresh) center/cover no-repeat;mask:var(--icon-refresh) center/cover no-repeat}header #indicators span[data-indicator][data-indicator=poll-status][data-style=inactive]:before{content:var(--tw-content);-webkit-mask:var(--icon-refresh-off) center/cover no-repeat;-webkit-mask:var(--icon-refresh-off) center/cover no-repeat;-webkit-mask:var(--icon-refresh-off) center/cover no-repeat;mask:var(--icon-refresh-off) center/cover no-repeat}header #indicators span[data-indicator][data-indicator=uci-changes]{position:relative}header #indicators span[data-indicator][data-indicator=uci-changes]:before{content:var(--tw-content);-webkit-mask:var(--icon-settings) center/cover no-repeat;-webkit-mask:var(--icon-settings) center/cover no-repeat;-webkit-mask:var(--icon-settings) center/cover no-repeat;mask:var(--icon-settings) center/cover no-repeat}header #indicators span[data-indicator][data-indicator=uci-changes][data-count]:not([data-count="0"]):after{content:var(--tw-content);content:var(--tw-content);top:calc(var(--spacing) * -.5);content:var(--tw-content);right:calc(var(--spacing) * -.5);content:var(--tw-content);z-index:10;content:var(--tw-content);content:var(--tw-content);min-height:calc(var(--spacing) * 3);content:var(--tw-content);min-width:calc(var(--spacing) * 3);content:var(--tw-content);content:var(--tw-content);content:var(--tw-content);content:var(--tw-content);background-color:var(--danger);content:var(--tw-content);padding-inline:calc(var(--spacing) * .5);content:var(--tw-content);content:var(--tw-content);--tw-leading:1;content:var(--tw-content);--tw-font-weight:var(--font-weight-bold);font-size:8px;line-height:1;font-weight:var(--font-weight-bold);content:var(--tw-content);color:var(--on-brand);content:var(--tw-content);--tw-shadow:var(--app-shadow-sm);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-content:attr(data-count);content:var(--tw-content);border-radius:3.40282e38px;justify-content:center;align-items:center;display:flex;position:absolute}body[data-nav-type=sidebar]{--sidebar-w-full:17rem;--sidebar-w:var(--sidebar-w-full)}@media (min-width:48rem){body[data-nav-type=sidebar]{grid-template-columns:var(--sidebar-w) minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);display:grid;overflow-x:clip}body[data-nav-type=sidebar].sidebar-collapsed{--sidebar-w:0rem}body[data-nav-type=sidebar]>header{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--hairline);grid-row-start:1;grid-column-start:2;margin-bottom:0}body[data-nav-type=sidebar]>.sidebar-panel{grid-row:1/span 2;grid-column-start:1}body[data-nav-type=sidebar]>#maincontent{min-width:0;padding-top:calc(var(--spacing) * 2);width:100%;max-width:none;padding-inline:calc(var(--spacing) * 8);grid-row-start:2;grid-column-start:2}}body[data-nav-type=sidebar] .header-crumb{align-items:center;gap:calc(var(--spacing) * 2);min-width:0;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--text-muted);margin-block:0;margin-left:0;margin-right:auto;padding:0;list-style-type:none;display:none;overflow:hidden}@media (min-width:48rem){body[data-nav-type=sidebar] .header-crumb{display:flex}}body[data-nav-type=sidebar] .header-crumb li{white-space:nowrap;margin:0;list-style-type:none}body[data-nav-type=sidebar] .header-crumb .crumb-sep{opacity:.5}body[data-nav-type=sidebar] .header-crumb .current{text-overflow:ellipsis;white-space:nowrap;--tw-font-weight:var(--font-weight-medium);min-width:0;font-weight:var(--font-weight-medium);color:var(--text);overflow:hidden}@media (min-width:48rem){body[data-nav-type=sidebar].sidebar-collapsed .header-crumb{margin-left:calc(var(--spacing) * 6)}}body[data-nav-type=sidebar] .sidebar-panel{border-radius:0;width:100%;height:100dvh;display:none;position:sticky;top:0;overflow:hidden}@media (min-width:48rem){body[data-nav-type=sidebar] .sidebar-panel{display:block}}body[data-nav-type=sidebar].sidebar-collapsed .sidebar-panel{visibility:hidden}body[data-nav-type=sidebar] .sidebar-panel-inner{height:100%;width:var(--sidebar-w-full);border-right-style:var(--tw-border-style);border-right-width:1px;border-color:var(--hairline);background-color:var(--bg);flex-direction:column;display:flex;overflow:hidden}body[data-nav-type=sidebar].sidebar-collapsed .sidebar-panel-inner{--tw-translate-x:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}@media (min-width:48rem){body[data-nav-type=sidebar].sidebar-anim-open>header,body[data-nav-type=sidebar].sidebar-anim-open>#maincontent,body[data-nav-type=sidebar].sidebar-anim-open .sidebar-panel-inner{animation:sidebar-run-in .25s var(--ease-in-out) both}body[data-nav-type=sidebar].sidebar-anim-close>header,body[data-nav-type=sidebar].sidebar-anim-close>#maincontent{animation:sidebar-run-back .25s var(--ease-in-out) both}body[data-nav-type=sidebar].sidebar-anim-close .sidebar-panel{visibility:visible;width:var(--sidebar-w-full);position:fixed;top:0;left:0}body[data-nav-type=sidebar].sidebar-anim-close .sidebar-panel-inner{animation:sidebar-run-out .25s var(--ease-in-out) both}}body[data-nav-type=sidebar] .sidebar-head{box-sizing:content-box;height:calc(var(--spacing) * 14);align-items:center;gap:calc(var(--spacing) * 2.5);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--hairline);padding-inline:calc(var(--spacing) * 4);flex-shrink:0;display:flex}body[data-nav-type=sidebar] .sidebar-head .sidebar-logo{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5);border-radius:calc(var(--radius-base) * .75);flex-shrink:0}body[data-nav-type=sidebar] .sidebar-head .sidebar-brand{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight);color:var(--text);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;flex:1;text-decoration-line:none;transition-duration:.15s;overflow:hidden}@media (hover:hover){body[data-nav-type=sidebar] .sidebar-head .sidebar-brand:hover{color:var(--brand)}}body[data-nav-type=sidebar] .sidebar-list{flex:1;margin:0;list-style-type:none}:where(body[data-nav-type=sidebar] .sidebar-list>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}body[data-nav-type=sidebar] .sidebar-list{padding:calc(var(--spacing) * 3);overflow-y:auto}body[data-nav-type=sidebar] .sidebar-list li{margin:0;list-style-type:none}body[data-nav-type=sidebar] .sidebar-list .navigation-direct{text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));overflow:hidden}body[data-nav-type=sidebar] .sidebar-submenu{min-height:0;margin:0;list-style-type:none}:where(body[data-nav-type=sidebar] .sidebar-submenu>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}body[data-nav-type=sidebar] .sidebar-submenu{padding:0;padding-left:calc(var(--spacing) * 4);overflow:hidden}body[data-nav-type=sidebar] .sidebar-submenu .navigation-sublink{padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 1.5);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}body[data-nav-type=sidebar] .sidebar-footer{border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--hairline);padding:calc(var(--spacing) * 3);flex-shrink:0}body[data-nav-type=sidebar] .sidebar-footer .nav-link{color:var(--text-muted)}@media (hover:hover){body[data-nav-type=sidebar] .sidebar-footer .nav-link:hover{color:var(--text)}}@keyframes sidebar-run-in{0%{translate:calc(-1 * var(--sidebar-w-full)) 0}}@keyframes sidebar-run-back{0%{translate:var(--sidebar-w-full) 0}}@keyframes sidebar-run-out{to{translate:calc(-1 * var(--sidebar-w-full)) 0}}#maincontent{width:95.8333%;min-height:calc(100vh - 4rem);max-width:var(--content-width-centered);padding-inline:calc(var(--spacing) * 4);margin-inline:auto}@media not all and (min-width:48rem){#maincontent{width:100%;padding-inline:calc(var(--spacing) * 3)}}#maincontent #view{--tw-shadow:0 0 #0000;width:100%;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);background-color:#0000;margin-inline:0;padding:0}#maincontent #view:empty{display:none}@media (min-width:48rem){#maincontent #view{padding:0}}#maincontent #view .cbi-title-section{margin-bottom:calc(var(--spacing) * 6);--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}@media not all and (min-width:48rem){#maincontent #view .cbi-title-section{margin-inline:calc(var(--spacing) * 2);margin-bottom:calc(var(--spacing) * 3)}}#maincontent #view .controls{margin:calc(var(--spacing) * 2);align-items:center;gap:calc(var(--spacing) * 3);flex-wrap:wrap;display:flex}@media not all and (min-width:48rem){#maincontent #view .controls{margin:var(--spacing);gap:calc(var(--spacing) * 2)}}#maincontent #view .controls label input[type=radio],#maincontent #view .controls label input[type=checkbox]{margin-right:var(--spacing);vertical-align:middle}#maincontent #view #content_syslog{margin:calc(var(--spacing) * 2)}@media not all and (min-width:48rem){#maincontent #view #content_syslog{margin:var(--spacing)}}#maincontent #view #content_syslog>div{align-items:baseline;column-gap:calc(var(--spacing) * 2);flex-wrap:wrap;display:flex}@media not all and (min-width:48rem){#maincontent #view #content_syslog>div{column-gap:calc(var(--spacing) * 1.5)}#maincontent #view #content_syslog>div>.cbi-input-select,#maincontent #view #content_syslog>div>.cbi-input-text{min-width:calc(var(--spacing) * 45)}}#maincontent #view div[style]>svg:where([data-darkmode=true],[data-darkmode=true] *){background-color:var(--surface)!important}#maincontent #view div[style]>svg line[style]:where([data-darkmode=true],[data-darkmode=true] *){stroke:var(--text)!important}#maincontent .cbi-map-descr,#maincontent .cbi-section-descr{margin-bottom:calc(var(--spacing) * 6);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed);color:var(--text-muted)}@media not all and (min-width:48rem){#maincontent .cbi-map-descr,#maincontent .cbi-section-descr{margin-inline:calc(var(--spacing) * 2);margin-bottom:calc(var(--spacing) * 3);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}#maincontent .cbi-page-actions{margin-top:calc(var(--spacing) * 6);justify-content:flex-end;align-items:center;gap:calc(var(--spacing) * 3);border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--hairline);padding-top:calc(var(--spacing) * 4);flex-wrap:wrap;display:flex}@media not all and (min-width:48rem){#maincontent .cbi-page-actions{margin-inline:calc(var(--spacing) * 2);margin-top:calc(var(--spacing) * 4);gap:calc(var(--spacing) * 2);padding-top:calc(var(--spacing) * 3)}}#maincontent .zone-forwards{align-items:stretch;gap:calc(var(--spacing) * 2);--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed);flex-wrap:nowrap;display:flex}#maincontent .zone-forwards>span{flex-shrink:0;flex-basis:calc(var(--spacing) * 8);color:var(--text-muted);justify-content:center;align-self:center;align-items:center;display:flex}#maincontent .zone-forwards .zone-src,#maincontent .zone-forwards .zone-dest{gap:calc(var(--spacing) * 1.5);flex-direction:column;flex:1;display:flex}#maincontent #syslog,#maincontent #log_textarea{width:100%;font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}#maincontent #syslog{border-radius:calc(var(--radius-base) * 3);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface-sunken);padding:calc(var(--spacing) * 6);color:var(--text);--tw-shadow:var(--app-shadow-md);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}@media not all and (min-width:48rem){#maincontent #syslog{padding:calc(var(--spacing) * 3)}}footer{margin-top:calc(var(--spacing) * 2);min-height:calc(var(--spacing) * 16);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}footer a{color:var(--brand)}footer span{text-align:center;display:inline-block}footer .breadcrumb{align-items:center;gap:var(--spacing);background-color:var(--surface-overlay);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 1.5);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-shadow:var(--app-shadow-sm);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-backdrop-blur:blur(var(--blur-md));--tw-backdrop-saturate:saturate(150%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;border-radius:3.40282e38px;transition-duration:.15s;display:flex}@media (hover:hover){footer .breadcrumb:hover{background-color:var(--surface)}}footer .breadcrumb li{list-style-type:none}footer .breadcrumb li.active a{color:var(--text)}.control-group{margin-top:var(--spacing)}.control-group,.cbi-page-actions>div,.cbi-section-actions>div{align-items:center;gap:calc(var(--spacing) * 2);flex-flow:row;display:flex}@media not all and (min-width:48rem){.control-group,.cbi-page-actions>div,.cbi-section-actions>div{gap:var(--spacing);flex-wrap:wrap}}.nav-link{border-radius:calc(var(--radius-base) * 1.5);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 1.5);color:var(--text);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;text-decoration-line:none;transition-duration:.15s;display:block}@media (hover:hover){.nav-link:hover{background-color:var(--hover-faint);text-decoration-line:none}}.navigation-direct{color:var(--text)}@media (hover:hover){.navigation-direct:hover{color:var(--text)}}.navigation-direct.is-active-page{background-color:var(--brand-subtle);--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--brand)}@media (hover:hover){.navigation-direct.is-active-page:hover{color:var(--brand)}}.nav-category{cursor:pointer;appearance:none;align-items:center;gap:calc(var(--spacing) * 2);border-radius:var(--radius-base);border-style:var(--tw-border-style);width:100%;padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);text-align:left;font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide);color:var(--text-muted);--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;-webkit-user-select:none;user-select:none;background-color:#0000;border-width:0;transition-duration:.15s;display:flex}@media (hover:hover){.nav-category:hover{color:var(--text)}}.nav-category:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-ring-color:var(--focus-ring);--tw-outline-style:none;outline-style:none}.navigation-group-toggle:after{content:var(--tw-content);width:calc(var(--spacing) * 4.5);height:calc(var(--spacing) * 4.5);content:var(--tw-content);content:var(--tw-content);content:var(--tw-content);opacity:.55;content:var(--tw-content);transition-property:transform,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));content:var(--tw-content);--tw-duration:.25s;--tw-content:"";content:var(--tw-content);content:var(--tw-content);-webkit-mask:var(--icon-arrow-right) center/cover no-repeat;-webkit-mask:var(--icon-arrow-right) center/cover no-repeat;-webkit-mask:var(--icon-arrow-right) center/cover no-repeat;mask:var(--icon-arrow-right) center/cover no-repeat;background-color:currentColor;flex-shrink:0;transition-duration:.25s}@media (hover:hover){.navigation-group-toggle:hover:after{content:var(--tw-content);opacity:1}}.nav-category-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.navigation-group.is-expanded>.navigation-group-toggle{color:var(--brand)}.navigation-group.is-expanded>.navigation-group-toggle:after{content:var(--tw-content);rotate:90deg}.navigation-group.is-active-group>.navigation-group-toggle{color:var(--brand)}.navigation-group-region{opacity:0;transition-property:grid-template-rows,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.25s;--tw-ease:var(--ease-out);transition-duration:.25s;transition-timing-function:var(--ease-out);grid-template-rows:0fr;display:grid}.navigation-group.is-expanded>.navigation-group-region{opacity:1;grid-template-rows:1fr}.navigation-submenu-list{min-height:0;list-style-type:none;overflow:hidden}.navigation-sublink{border-radius:calc(var(--radius-base) * 1.5);--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--text-muted);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;text-decoration-line:none;transition-duration:.15s;display:flex;position:relative}@media (hover:hover){.navigation-sublink:hover{background-color:var(--hover-faint);color:var(--text)}}.navigation-sublink.is-active-page{background-color:var(--brand-subtle);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--brand)}@media (hover:hover){.navigation-sublink.is-active-page:hover{color:var(--brand)}}.nav-category-preview{text-overflow:ellipsis;white-space:nowrap;padding-bottom:var(--spacing);color:var(--text-subtle);overflow:hidden}.nav-category-preview .nav-preview-current{color:var(--brand)}.desktop-nav-title[data-section=status]{--menu-icon:var(--icon-activity)}.desktop-nav-title[data-section=statistics]{--menu-icon:var(--icon-chart-bar)}.desktop-nav-title[data-section=nlbw]{--menu-icon:var(--icon-gauge)}.desktop-nav-title[data-section=system]{--menu-icon:var(--icon-settings)}.desktop-nav-title[data-section=services]{--menu-icon:var(--icon-apps)}.desktop-nav-title[data-section=nas]{--menu-icon:var(--icon-server)}.desktop-nav-title[data-section=control]{--menu-icon:var(--icon-adjustments)}.desktop-nav-title[data-section=network]{--menu-icon:var(--icon-world)}.desktop-nav-title[data-section=vpn]{--menu-icon:var(--icon-shield)}.desktop-nav-title[data-section=docker]{--menu-icon:var(--icon-box)}.desktop-nav-title[data-section=asterisk]{--menu-icon:var(--icon-phone)}.theme-switcher{background-color:var(--surface-sunken);--tw-shadow:var(--app-shadow-sm);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;border-radius:3.40282e38px;align-items:center;gap:0;transition-duration:.15s;display:inline-flex;position:relative}@media not all and (min-width:48rem){.theme-switcher{padding-block:calc(var(--spacing) * .5)}}.theme-switcher{border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline)}.theme-switcher:before{content:var(--tw-content);content:var(--tw-content);top:var(--spacing);content:var(--tw-content);left:var(--spacing);content:var(--tw-content);z-index:0;content:var(--tw-content);content:var(--tw-content);content:var(--tw-content);content:var(--tw-content);background-color:var(--surface-overlay);content:var(--tw-content);--tw-shadow:var(--app-shadow-md);width:calc(33.333% - .5rem);height:calc(100% - .5rem);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);content:var(--tw-content);transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));content:var(--tw-content);--tw-duration:.25s;border-radius:3.40282e38px;transition-duration:.25s;position:absolute}@media not all and (min-width:48rem){footer .theme-switcher{display:none}}.theme-switcher .theme-option{z-index:10;cursor:pointer;justify-content:center;align-items:center;gap:calc(var(--spacing) * 1.5);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 1.5);transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;border-radius:3.40282e38px;transition-duration:.15s;display:flex;position:relative}@media (hover:hover){.theme-switcher .theme-option:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}}.theme-switcher .theme-option:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.theme-switcher .theme-option input[type=radio]{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.theme-switcher .theme-option .theme-icon{color:var(--text-muted);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;justify-content:center;align-items:center;transition-duration:.15s;display:flex}.theme-switcher .theme-option .theme-icon svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4);transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;transition-duration:.15s}.theme-switcher .theme-option .theme-label{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--text-muted);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;transition-duration:.15s;display:none}.theme-switcher .theme-option.active .theme-icon{color:var(--text)}.theme-switcher .theme-option.active .theme-icon svg{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.theme-switcher .theme-option.active .theme-label,.theme-switcher .theme-option:hover:not(.active) .theme-icon,.theme-switcher .theme-option:hover:not(.active) .theme-label{color:var(--text)}.theme-switcher:has(.theme-option[data-theme=device].active):before{content:var(--tw-content);--tw-translate-x:0;translate:var(--tw-translate-x) var(--tw-translate-y)}.theme-switcher:has(.theme-option[data-theme=light].active):before{content:var(--tw-content);--tw-translate-x:calc(100% + .5rem);translate:var(--tw-translate-x) var(--tw-translate-y)}.theme-switcher:has(.theme-option[data-theme=dark].active):before{content:var(--tw-content);--tw-translate-x:calc(200% + 1rem);translate:var(--tw-translate-x) var(--tw-translate-y)}.floating-toolbar{pointer-events:none;right:calc(var(--spacing) * 4);bottom:calc(var(--spacing) * 4);z-index:40;flex-direction:column;align-items:center;display:flex;position:fixed}@media not all and (min-width:48rem){.floating-toolbar{right:calc(var(--spacing) * 3);bottom:calc(var(--spacing) * 3)}}.floating-toolbar .toolbar-list{margin-bottom:calc(var(--spacing) * 2.5);align-items:center;gap:calc(var(--spacing) * 2.5);flex-direction:column;display:flex}@media not all and (min-width:48rem){.floating-toolbar .toolbar-list{margin-bottom:calc(var(--spacing) * 2);gap:calc(var(--spacing) * 2)}}.floating-toolbar .toolbar-btn{pointer-events:auto;width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11);cursor:pointer;background-color:var(--surface-overlay);color:var(--text-muted);--tw-shadow:var(--app-shadow-md);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);border-radius:3.40282e38px;place-items:center;display:grid}@media not all and (min-width:48rem){.floating-toolbar .toolbar-btn{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}}.floating-toolbar .toolbar-btn{transition:translate .32s cubic-bezier(.34,1.25,.5,1),scale .32s cubic-bezier(.34,1.25,.5,1),opacity .22s,visibility .32s,background-color .15s,color .15s;transition-delay:var(--fab-d,0s),var(--fab-d,0s),var(--fab-d,0s),var(--fab-d,0s),0s,0s}.floating-toolbar .toolbar-btn:hover{background-color:var(--hover-faint);color:var(--text)}.floating-toolbar .toolbar-btn:active{scale:.92}.floating-toolbar .toolbar-btn:not(.toggle){--fab-d:calc((var(--fab-n,1) - 1 - var(--fab-i,0)) * 60ms);text-decoration-line:none}.floating-toolbar .toolbar-btn:not(.toggle):active{--fab-d:0s}.floating-toolbar .toolbar-btn:not(.toggle) .icon{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5);-webkit-mask:var(--fab-icon) center/contain no-repeat;-webkit-mask:var(--fab-icon) center/contain no-repeat;-webkit-mask:var(--fab-icon) center/contain no-repeat;mask:var(--fab-icon) center/contain no-repeat;background-color:currentColor;flex-shrink:0}@media not all and (min-width:48rem){.floating-toolbar .toolbar-btn:not(.toggle) .icon{width:calc(var(--spacing) * 4.5);height:calc(var(--spacing) * 4.5)}}.floating-toolbar .toolbar-btn.toggle{border-style:var(--tw-border-style);color:var(--text-subtle);border-width:0}@media (hover:hover){.floating-toolbar .toolbar-btn.toggle:hover{color:var(--text)}}.floating-toolbar .toolbar-btn.toggle .icon{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5);transition-property:rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.25s;--tw-ease:var(--ease-out);transition-duration:.25s;transition-timing-function:var(--ease-out);place-items:center;display:grid}@media not all and (min-width:48rem){.floating-toolbar .toolbar-btn.toggle .icon{width:calc(var(--spacing) * 4.5);height:calc(var(--spacing) * 4.5)}}.floating-toolbar .toolbar-btn.toggle .icon svg{width:100%;height:100%}.floating-toolbar.collapsed .toolbar-btn:not(.toggle){pointer-events:none;visibility:hidden;opacity:0;--tw-translate-y:calc((var(--fab-n,1) - var(--fab-i,0)) * 3.375rem);scale:.35;translate:var(--tw-translate-x) var(--tw-translate-y);--fab-d:calc(var(--fab-i,0) * 60ms)}@media not all and (min-width:48rem){.floating-toolbar.collapsed .toolbar-btn:not(.toggle){--tw-translate-y:calc((var(--fab-n,1) - var(--fab-i,0)) * 3rem);translate:var(--tw-translate-x) var(--tw-translate-y)}}.floating-toolbar.collapsed .toolbar-btn.toggle .icon{rotate:45deg}button,input[type=button],input[type=submit],input[type=reset],.btn,.cbi-button{cursor:pointer;justify-content:center;align-items:center;gap:calc(var(--spacing) * 1.5);border-radius:calc(var(--radius-base) * 1.5);border-style:var(--tw-border-style);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 1.5);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition-property:background-color,border-color,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;border-width:1px;transition-duration:.15s;display:inline-flex}@media not all and (min-width:48rem){button,input[type=button],input[type=submit],input[type=reset],.btn,.cbi-button{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}}:is(button,input[type=button],input[type=submit],input[type=reset],.btn,.cbi-button)[disabled]{cursor:not-allowed;opacity:var(--app-opacity-disabled)}.td :is(button,input[type=button],input[type=submit],input[type=reset],.btn,.cbi-button){white-space:nowrap;flex:none;width:auto;display:inline-flex}@media not all and (min-width:48rem){.td :is(button,input[type=button],input[type=submit],input[type=reset],.btn,.cbi-button){min-height:calc(var(--spacing) * 9);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}.btn,.cbi-button,.cbi-button-default,.cbi-button-download,.cbi-button-find,.cbi-button-link,.cbi-button-up,.cbi-button-down{border-color:var(--hairline);background-color:var(--surface-sunken);color:var(--text)}@media (hover:hover){:is(.btn,.cbi-button,.cbi-button-default,.cbi-button-download,.cbi-button-find,.cbi-button-link,.cbi-button-up,.cbi-button-down):hover{background-color:var(--hover-faint)}}.drag-handle{border-color:var(--hairline);background-color:var(--surface-sunken);color:var(--text-muted)}@media (hover:hover){.drag-handle:hover{background-color:var(--hover-faint)}}.btn.primary,.cbi-button-action,.cbi-button-apply,.cbi-button-reload,.cbi-button-add,.cbi-button-edit{border-color:var(--brand);background-color:var(--brand);color:var(--on-brand)}@media (hover:hover){:is(.btn.primary,.cbi-button-action,.cbi-button-apply,.cbi-button-reload,.cbi-button-add,.cbi-button-edit):hover{background-color:var(--brand-hover)}}.cbi-button-positive,.cbi-button-fieldadd,.cbi-button-save{background-color:var(--brand-subtle);color:var(--brand);border-color:#0000}@media (hover:hover){:is(.cbi-button-positive,.cbi-button-fieldadd,.cbi-button-save):hover{background-color:var(--brand-subtle-hover)}}.cbi-button-negative,.cbi-section-remove .cbi-button,.cbi-button-reset,.cbi-button-remove{background-color:var(--danger-surface);color:var(--danger);border-color:#0000}@media (hover:hover){:is(.cbi-button-negative,.cbi-section-remove .cbi-button,.cbi-button-reset,.cbi-button-remove):hover{background-color:var(--danger-surface-hover)}}input:disabled{cursor:not-allowed;opacity:var(--app-opacity-disabled)}input[type=text],input[type=password],.cbi-input-text,.cbi-input{width:calc(var(--spacing) * 52.5);border-radius:calc(var(--radius-base) * 2);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--control-bg);max-width:100%;padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 1.5);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal);color:var(--text);position:relative}:is(input[type=text],input[type=password],.cbi-input-text,.cbi-input)::placeholder{color:var(--text-muted)}input[type=text],input[type=password],.cbi-input-text,.cbi-input{--tw-shadow:var(--app-shadow-sm);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);transition-property:border-color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;transition-duration:.15s}:is(input[type=text],input[type=password],.cbi-input-text,.cbi-input):focus{border-color:var(--brand);--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-ring-color:var(--focus-ring);--tw-outline-style:none;outline-style:none}.table.cbi-section-table :is(input[type=text],input[type=password],.cbi-input-text,.cbi-input){width:100%}.cbi-input-text{min-width:calc(var(--spacing) * 20)}@media not all and (min-width:48rem){.cbi-input-text{min-width:calc(var(--spacing) * 14)}}#localtime{min-width:calc(var(--spacing) * 70)}input[type=radio],input[type=checkbox]{margin-right:calc(var(--spacing) * 3);height:calc(var(--spacing) * 4);width:calc(var(--spacing) * 4);cursor:pointer;appearance:none;display:inline-block;position:relative}:is(input[type=radio],input[type=checkbox]):before{content:var(--tw-content);content:var(--tw-content);content:var(--tw-content);content:var(--tw-content);height:calc(var(--spacing) * 4);content:var(--tw-content);width:calc(var(--spacing) * 4);content:var(--tw-content);border-style:var(--tw-border-style);content:var(--tw-content);border-width:1px;border-color:var(--hairline);content:var(--tw-content);background-color:var(--control-bg);content:var(--tw-content);transition-property:background-color,border-color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));content:var(--tw-content);--tw-duration:.15s;transition-duration:.15s;position:absolute;top:0;left:0}:is(input[type=radio],input[type=checkbox]):after{content:var(--tw-content);content:var(--tw-content);top:calc(var(--spacing) * .5);content:var(--tw-content);left:calc(var(--spacing) * .5);content:var(--tw-content);height:calc(var(--spacing) * 3);content:var(--tw-content);width:calc(var(--spacing) * 3);content:var(--tw-content);background-color:var(--on-brand);content:var(--tw-content);opacity:0;content:var(--tw-content);transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));content:var(--tw-content);--tw-duration:.15s;transition-duration:.15s;position:absolute}:is(input[type=radio],input[type=checkbox]):checked:before{content:var(--tw-content);border-color:var(--brand);content:var(--tw-content);background-color:var(--brand)}:is(input[type=radio],input[type=checkbox]):checked:after{content:var(--tw-content);opacity:1}@media (hover:hover){:is(input[type=radio],input[type=checkbox]):hover:before{content:var(--tw-content);border-color:var(--hairline)}}:is(input[type=radio],input[type=checkbox]):focus:before{content:var(--tw-content);border-color:var(--brand);content:var(--tw-content);--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);content:var(--tw-content);--tw-ring-color:var(--focus-ring);content:var(--tw-content);--tw-outline-style:none;outline-style:none}:is(input[type=radio],input[type=checkbox]):disabled{cursor:not-allowed}input[type=radio]:before{content:var(--tw-content);border-radius:3.40282e38px}input[type=radio]:after{content:var(--tw-content);-webkit-mask:var(--icon-radio) center/cover no-repeat;-webkit-mask:var(--icon-radio) center/cover no-repeat;-webkit-mask:var(--icon-radio) center/cover no-repeat;mask:var(--icon-radio) center/cover no-repeat}input[type=checkbox]:before{content:var(--tw-content);border-radius:calc(var(--radius-base) * .5)}input[type=checkbox]:after{content:var(--tw-content);-webkit-mask:var(--icon-check) center/cover no-repeat;-webkit-mask:var(--icon-check) center/cover no-repeat;-webkit-mask:var(--icon-check) center/cover no-repeat;mask:var(--icon-check) center/cover no-repeat}.cbi-checkbox{align-items:center;display:inline-flex;position:relative}textarea{min-height:calc(var(--spacing) * 24);resize:vertical;border-radius:calc(var(--radius-base) * 2);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--control-bg);width:100%;padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal);color:var(--text)}textarea::placeholder{color:var(--text-muted)}textarea{--tw-shadow:var(--app-shadow-sm);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);transition-property:border-color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;transition-duration:.15s}textarea:focus{border-color:var(--brand);--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-ring-color:var(--focus-ring);--tw-outline-style:none;outline-style:none}textarea[disabled]{cursor:not-allowed;opacity:var(--app-opacity-disabled)}select{max-width:100%;min-width:calc(var(--spacing) * 52.5);appearance:none;border-radius:calc(var(--radius-base) * 2);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--control-bg);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 1.5);padding-right:calc(var(--spacing) * 10);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal);color:var(--text);--tw-shadow:var(--app-shadow-sm);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);transition-property:border-color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;transition-duration:.15s}select:focus{border-color:var(--brand);--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-ring-color:var(--focus-ring);--tw-outline-style:none;outline-style:none}@media (min-width:48rem){select{max-width:calc(var(--spacing) * 100)}}select{background-image:var(--icon-arrow-down);background-position:right .75rem center;background-repeat:no-repeat;background-size:16px}select:where([data-darkmode=true],[data-darkmode=true] *){background-image:var(--icon-arrow-down-dark)}select[disabled]{cursor:not-allowed;opacity:var(--app-opacity-disabled)}.cbi-dropdown{white-space:nowrap;--tw-shadow:var(--app-shadow-sm);min-width:fit-content;max-width:100%;height:fit-content;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);flex-shrink:0;align-items:center;padding:0;display:inline-flex}.cbi-dropdown[disabled]{pointer-events:none;opacity:var(--app-opacity-disabled)}.cbi-dropdown:not(.btn):not(.cbi-button){max-width:100%;min-width:calc(var(--spacing) * 52.5);border-radius:calc(var(--radius-base) * 2);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface)}@media (min-width:48rem){.cbi-dropdown:not(.btn):not(.cbi-button){max-width:calc(var(--spacing) * 100)}}.cbi-dropdown:not(.btn):not(.cbi-button)>ul>li[placeholder]{display:none}.cbi-dropdown>ul{align-items:center;gap:calc(var(--spacing) * .5);flex-wrap:nowrap;flex:1;margin:0;list-style-type:none;display:flex;overflow:hidden}@media not all and (min-width:48rem){.cbi-dropdown>ul{flex-wrap:wrap}}.cbi-dropdown>ul>li{align-items:center;gap:var(--spacing);padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * 1.5);margin:0;list-style-type:none;display:none;overflow:hidden}.cbi-dropdown>ul>li[display]{display:flex!important}.cbi-dropdown>ul>li .hide-open{display:block}.cbi-dropdown>ul>li .hide-close{display:none}.cbi-dropdown>ul>li>form{pointer-events:none;display:none}.cbi-dropdown>ul>li>label{align-items:center;gap:calc(var(--spacing) * 2);display:flex}.cbi-dropdown>ul>li img{height:calc(var(--spacing) * 5);width:calc(var(--spacing) * 5);vertical-align:middle;flex:none}.cbi-dropdown>ul>li span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cbi-dropdown>ul.dropdown{z-index:50;border-radius:var(--radius-base);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface-overlay);--tw-shadow:var(--app-shadow-lg);width:fit-content;min-width:100%;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-backdrop-blur:blur(var(--blur-md));--tw-backdrop-saturate:saturate(150%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);position:absolute;left:0;overflow-y:auto}.cbi-dropdown>ul.dropdown>li{min-height:calc(var(--spacing) * 9);cursor:pointer;width:100%;padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 1.5);--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--text-muted)}@media (hover:hover){.cbi-dropdown>ul.dropdown>li:hover{background-color:var(--brand-subtle)}}.cbi-dropdown>ul.preview{display:none}.cbi-dropdown[empty]>ul{max-width:1px;max-height:1px}.cbi-dropdown[empty]>ul>li,.cbi-dropdown[optional][open]>ul.dropdown>li[placeholder]{display:block}.cbi-dropdown[open]{border-color:var(--brand);--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-ring-color:var(--focus-ring);position:relative}.cbi-dropdown[open]>ul.dropdown{width:auto;max-width:none;display:block}.cbi-dropdown[open]>ul.dropdown>li{display:flex}.cbi-dropdown[open]>ul.dropdown>li[selected]{background-color:var(--brand-subtle);color:var(--brand)}.cbi-dropdown[open]>ul.dropdown>li[unselectable]{opacity:var(--app-opacity-disabled)}.cbi-dropdown[open]>ul.dropdown>li .hide-open{display:none}.cbi-dropdown[open]>ul.dropdown>li .hide-close{display:block}.cbi-dropdown[open]>ul.preview{display:flex}:is(.cbi-dropdown[multiple][more],.cbi-dropdown[multiple][empty])>.more{padding-inline:calc(var(--spacing) * 2.5);padding-block:calc(var(--spacing) * 1.5);flex:none;display:flex}.cbi-dropdown[multiple][empty]>.more{flex:1}.cbi-dropdown[multiple][open]>ul.dropdown>li>form{align-items:center;display:flex}.cbi-dropdown[multiple]>ul>li>label{display:flex}.cbi-dropdown>.open{cursor:pointer;border-left-style:var(--tw-border-style);border-left-width:1px;border-color:var(--hairline);padding-inline:calc(var(--spacing) * 2.5);padding-block:calc(var(--spacing) * .5);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:currentColor;flex:none;justify-content:center;align-items:center;display:flex}.cbi-dropdown>.more{display:none}.cbi-tooltip{z-index:110;width:max-content;max-width:var(--container-xs);--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y);border-radius:calc(var(--radius-base) * 1.5);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface-overlay);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));overflow-wrap:normal;word-break:normal;white-space:normal;color:var(--text);opacity:0;--tw-shadow:var(--app-shadow-lg);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);transition-property:visibility,opacity,scale;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;--tw-ease:var(--ease-out);transition-duration:.15s;transition-timing-function:var(--ease-out);position:absolute;inset-inline-start:-10000px}.cbi-tooltip.error{border-color:var(--hairline);background-color:var(--danger-surface);color:var(--danger)}.cbi-tooltip.success{border-color:var(--hairline);background-color:var(--success-surface);color:var(--success)}.cbi-tooltip.info{border-color:var(--hairline);background-color:var(--info-surface);color:var(--info)}.cbi-tooltip.notice{border-color:var(--hairline);background-color:var(--warning-surface);color:var(--warning)}.cbi-tooltip-container,[data-tooltip]{cursor:help;white-space:nowrap;text-underline-offset:2px;text-decoration-line:underline;text-decoration-style:dotted;text-decoration-color:currentColor;display:inline-block;position:relative}:is(.cbi-tooltip-container,[data-tooltip]) .cbi-tooltip{visibility:hidden;--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y);opacity:0;transition-property:visibility,opacity,scale;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;--tw-ease:var(--ease-out);transition-duration:.15s;transition-timing-function:var(--ease-out)}:is(.cbi-tooltip-container,[data-tooltip]):hover .cbi-tooltip{visibility:visible;--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y);opacity:1;inset-inline-start:auto}[data-tip]:not([data-tip=""]){position:relative}[data-tip]:not([data-tip=""]):after{content:attr(data-tip);pointer-events:none;z-index:110;width:max-content;max-width:var(--container-xs);--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y);border-radius:var(--radius-base);background-color:var(--text);padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));overflow-wrap:normal;word-break:normal;white-space:normal;color:var(--bg);opacity:0;transition-property:opacity,scale;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;--tw-ease:var(--ease-out);transition-duration:.15s;transition-timing-function:var(--ease-out);position:absolute}[data-tip]:not([data-tip=""]):not([data-tip-pos]):after,[data-tip]:not([data-tip=""])[data-tip-pos=top]:after{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y);bottom:calc(100% + .5rem);left:50%}[data-tip]:not([data-tip=""])[data-tip-pos=bottom]:after{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y);top:calc(100% + .5rem);left:50%}[data-tip]:not([data-tip=""])[data-tip-pos=left]:after{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y);top:50%;right:calc(100% + .625rem)}[data-tip]:not([data-tip=""])[data-tip-pos=right]:after{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y);top:50%;left:calc(100% + .625rem)}[data-tip]:not([data-tip=""]):focus-visible:after{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y);opacity:1;transition-delay:.3s}@media (hover:hover){[data-tip]:not([data-tip=""]):hover:after{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y);opacity:1;transition-delay:.3s}}.alert-message{top:calc(var(--spacing) * 14);z-index:30;margin-bottom:calc(var(--spacing) * 4);border-radius:calc(var(--radius-base) * 2);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface-sunken);padding:calc(var(--spacing) * 6);color:var(--text);position:sticky}@media not all and (min-width:48rem){.alert-message{margin-inline:0;margin-bottom:calc(var(--spacing) * 3);padding:calc(var(--spacing) * 4)}}.alert-message.modal{position:static;top:auto}.modal .alert-message{margin-bottom:0}.login-shell .alert-message{padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * 2.5);text-align:center;font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));margin-bottom:0}@media not all and (min-width:48rem){.login-shell .alert-message{padding-inline:calc(var(--spacing) * .5)}}.alert-message.success{border-color:var(--hairline);background-color:var(--success-surface);color:var(--success)}.alert-message.info{border-color:var(--hairline);background-color:var(--info-surface);color:var(--info)}.alert-message.warning,.alert-message.notice{border-color:var(--hairline);background-color:var(--warning-surface);color:var(--warning)}.alert-message.error,.alert-message.danger{border-color:var(--hairline);background-color:var(--danger-surface);color:var(--danger)}.alert-message h4,.alert-message h5,.alert-message pre,.alert-message ul,.alert-message li,.alert-message p{border-style:var(--tw-border-style);color:inherit;background-color:#0000;border-width:0}.alert-message h4{margin-bottom:calc(var(--spacing) * 2);font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}@media not all and (min-width:48rem){.alert-message h4{margin-bottom:calc(var(--spacing) * 1.5);font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}}.alert-message p{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}@media not all and (min-width:48rem){.alert-message p{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}.alert-message .right{margin-top:calc(var(--spacing) * 4)}@media not all and (min-width:48rem){.alert-message .right{margin-top:calc(var(--spacing) * 3)}}.cbi-progressbar{height:calc(var(--spacing) * 3.5);cursor:help;background-color:var(--surface-sunken);border-radius:3.40282e38px;width:100%;position:relative;overflow:hidden}.cbi-progressbar:before{content:var(--tw-content);content:var(--tw-content);content:var(--tw-content);content:var(--tw-content);--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y);content:var(--tw-content);--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y);content:var(--tw-content);border-radius:calc(var(--radius-base) * 2);content:var(--tw-content);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));content:var(--tw-content);white-space:nowrap;content:var(--tw-content);color:var(--text);--tw-content:attr(title);content:var(--tw-content);position:absolute;top:50%;left:50%}@media not all and (min-width:48rem){.cbi-progressbar{height:calc(var(--spacing) * 4)}.cbi-progressbar:before{content:var(--tw-content);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));content:var(--tw-content);--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}}@media not all and (min-width:40rem){[data-page=admin-system-package-manager] .cbi-progressbar:before{content:var(--tw-content);font-size:10px}}.cbi-progressbar>div{--tw-gradient-position:to right;height:100%}@supports (background-image:linear-gradient(in lab, red, red)){.cbi-progressbar>div{--tw-gradient-position:to right in oklab}}.cbi-progressbar>div{background-image:linear-gradient(var(--tw-gradient-stops));--tw-gradient-from:var(--progress-start);--tw-gradient-to:var(--progress-end);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.25s;transition-duration:.25s}.label{background-color:var(--surface-sunken);padding-inline:calc(var(--spacing) * 3);padding-block:var(--spacing);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold);color:var(--text);text-transform:uppercase;border-radius:3.40282e38px}.label.important{background-color:var(--info-surface);color:var(--info)}.label.warning{background-color:var(--danger-surface);color:var(--danger)}.label.success{background-color:var(--success-surface);color:var(--success)}.label.notice{background-color:var(--warning-surface);color:var(--warning)}.zonebadge{align-items:center;gap:calc(var(--spacing) * 1.5);border-radius:var(--radius-base);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface-sunken);padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing);vertical-align:middle;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-leading:var(--leading-normal);line-height:var(--leading-normal);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--text);display:inline-flex;overflow:visible}@media not all and (min-width:48rem){.zonebadge{gap:var(--spacing);padding-inline:calc(var(--spacing) * 1.5);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}}.zonebadge[style*=--zone-color-rgb]{border-color:#0000;background-color:rgb(var(--zone-color-rgb),.7)!important}.zonebadge[style*=--zone-color-rgb] em{color:var(--text)}.zonebadge.zonebadge-empty{--tw-border-style:dashed;--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal);color:var(--text-muted);background-color:#0000;border-style:dashed;font-style:italic}.ifacebadge>.zonebadge{padding-inline:var(--spacing);padding-block:calc(var(--spacing) * 1.5);border-radius:3.40282e38px}.cbi-dropdown .zonebadge{padding-inline:calc(var(--spacing) * 1.5);padding-block:calc(var(--spacing) * .5)}.ifacebadge{cursor:default;align-items:center;gap:calc(var(--spacing) * 2);border-radius:calc(var(--radius-base) * 2);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface-sunken);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal);color:var(--text);--tw-shadow:var(--app-shadow-sm);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);transition-property:box-shadow,border-color,background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;flex-wrap:nowrap;transition-duration:.15s;display:inline-flex}@media (hover:hover){.ifacebadge:hover{border-color:var(--hairline);background-color:var(--surface-sunken);--tw-shadow:var(--app-shadow-md);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}@media not all and (min-width:48rem){.ifacebadge{gap:calc(var(--spacing) * 1.5);padding-inline:calc(var(--spacing) * 2.5);padding-block:calc(var(--spacing) * 1.5);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}}.zonebadge>.ifacebadge{border-radius:calc(var(--radius-base) * 2);padding-inline:calc(var(--spacing) * 1.5);padding-block:0}.zonebadge>.ifacebadge img{margin-right:var(--spacing);width:calc(var(--spacing) * 4)}.cbi-dropdown .ifacebadge{gap:var(--spacing);border-radius:var(--radius-base);padding-inline:calc(var(--spacing) * 1.5);padding-block:calc(var(--spacing) * .5);--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}@media (hover:hover){.cbi-dropdown .ifacebadge:hover{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.cbi-dropdown .ifacebadge img{margin-right:var(--spacing);width:calc(var(--spacing) * 4)}.ifacebadge>img{width:calc(var(--spacing) * 5);flex-shrink:0;align-self:center}@media not all and (min-width:48rem){.ifacebadge>img{width:calc(var(--spacing) * 4)}}.ifacebadge>span>.nowrap{margin-bottom:calc(var(--spacing) * 1.5);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));display:inline-block}@media not all and (min-width:48rem){.ifacebadge>span>.nowrap{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}}.ifacebadge.ifacebadge-active{border-color:var(--brand);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.ifacebadge.large{min-width:200px;padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 3);flex:1}@media not all and (min-width:48rem){.ifacebadge.large{min-width:180px;padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2.5)}}.cbi-section{margin-bottom:calc(var(--spacing) * 3);border-radius:calc(var(--radius-base) * 2);padding:calc(var(--spacing) * 5);overflow:visible}@media not all and (min-width:48rem){.cbi-section{padding:calc(var(--spacing) * 3)}}.cbi-section[data-tab-title]{margin:0;padding:0}.cbi-section[data-tab-active=true]{margin-bottom:calc(var(--spacing) * 3);padding:calc(var(--spacing) * 5)}@media not all and (min-width:48rem){.cbi-section[data-tab-active=true]{padding:calc(var(--spacing) * 3)}}#maincontent .cbi-section{border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface);--tw-shadow:var(--app-shadow-sm);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.cbi-section>.cbi-title{justify-content:space-between;align-items:flex-start;display:flex}.cbi-section>.cbi-title>h3{flex:1}.cbi-section>.cbi-title>h3 .label[data-clickable]{background-color:var(--surface-sunken);color:var(--text);width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7);cursor:pointer;justify-content:center;align-items:center;padding:0;display:inline-flex}.cbi-section>.cbi-title>h3 .label[data-clickable]:before{content:var(--tw-content);width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4);content:var(--tw-content);content:var(--tw-content);transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));content:var(--tw-content);--tw-duration:.15s;background-color:currentColor;transition-duration:.15s}@media (hover:hover){.cbi-section>.cbi-title>h3 .label[data-clickable]:hover{--tw-shadow:var(--app-shadow-md);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.cbi-section>.cbi-title>h3 .label[data-clickable]:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}@media not all and (min-width:48rem){.cbi-section>.cbi-title>h3 .label[data-clickable]{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}}.cbi-section>.cbi-title>h3 span[data-indicator=poll-status]{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5);cursor:pointer;font-size:0;position:relative}.cbi-section>.cbi-title>h3 span[data-indicator=poll-status]:before{content:var(--tw-content);content:var(--tw-content);width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5);content:var(--tw-content);content:var(--tw-content);transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));content:var(--tw-content);--tw-duration:.15s;content:var(--tw-content);--tw-ease:var(--ease-out);transition-duration:.15s;transition-timing-function:var(--ease-out);background-color:currentColor;position:absolute}@media (hover:hover){.cbi-section>.cbi-title>h3 span[data-indicator=poll-status]:hover:before{content:var(--tw-content);--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}}.cbi-section>.cbi-title>h3 span[data-indicator=poll-status]:active:before{content:var(--tw-content);--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.cbi-section>.cbi-title>h3 span[data-indicator=poll-status][data-style=active]:before{content:var(--tw-content);content:var(--tw-content);-webkit-mask:var(--icon-arrow-right) center/cover no-repeat;-webkit-mask:var(--icon-arrow-right) center/cover no-repeat;-webkit-mask:var(--icon-arrow-right) center/cover no-repeat;mask:var(--icon-arrow-right) center/cover no-repeat;rotate:0deg}.cbi-section>.cbi-title>h3 span[data-indicator=poll-status][data-style=inactive]:before{content:var(--tw-content);content:var(--tw-content);-webkit-mask:var(--icon-arrow-right) center/cover no-repeat;-webkit-mask:var(--icon-arrow-right) center/cover no-repeat;-webkit-mask:var(--icon-arrow-right) center/cover no-repeat;mask:var(--icon-arrow-right) center/cover no-repeat;rotate:90deg}.cbi-section legend{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.cbi-section h3{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--hairline);padding-bottom:calc(var(--spacing) * 4);color:var(--text)}@media not all and (min-width:48rem){.cbi-section h3{padding-bottom:calc(var(--spacing) * 2);margin-inline:0}.cbi-section div[style*=display\:grid]{gap:calc(var(--spacing) * 3);grid-template-columns:repeat(2,minmax(0,1fr))!important}}.cbi-section .network-status-table{margin-bottom:calc(var(--spacing) * 3);justify-content:space-around;gap:calc(var(--spacing) * 4);flex-wrap:wrap;display:flex}@media not all and (min-width:48rem){.cbi-section .network-status-table{flex-direction:column}}.cbi-section .cbi-section-create{margin-top:calc(var(--spacing) * 6);align-items:center;gap:calc(var(--spacing) * 3);flex-wrap:wrap;display:flex}@media not all and (min-width:48rem){.cbi-section .cbi-section-create{margin-inline:0;margin-top:calc(var(--spacing) * 5);align-items:stretch;gap:calc(var(--spacing) * 3);flex-direction:column}}.cbi-section .cbi-section-create>div{flex:none}@media not all and (min-width:48rem){.cbi-section .cbi-section-create>div{flex:1;width:100%}}.ifacebox{min-width:calc(var(--spacing) * 40);border-radius:calc(var(--radius-base) * 2);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface-overlay);text-align:center;font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5);--tw-shadow:var(--app-shadow-md);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);flex-direction:column;align-items:stretch;display:inline-flex;position:relative;overflow:visible}@media (hover:hover){.ifacebox:hover{border-color:var(--hairline);--tw-shadow:var(--app-shadow-lg);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}@media not all and (min-width:48rem){.ifacebox{min-width:calc(var(--spacing) * 30);border-radius:calc(var(--radius-base) * 3);border-color:var(--hairline);--tw-shadow:var(--app-shadow-sm);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);flex:1}td .ifacebox{flex-direction:row}}.ifacebox .ifacebox-head{border-top-left-radius:calc(var(--radius-base) * 2);border-top-right-radius:calc(var(--radius-base) * 2);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--hairline);background-color:var(--surface-sunken);width:100%;padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 3);text-align:center;--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight);color:var(--text);transition-property:background-color,border-color,color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;transition-duration:.15s}@media not all and (min-width:48rem){.ifacebox .ifacebox-head{border-top-left-radius:calc(var(--radius-base) * 3);border-top-right-radius:calc(var(--radius-base) * 3);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2.5);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5);--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}}.ifacebox .ifacebox-head[style*=--zone-color-rgb]{background-color:rgb(var(--zone-color-rgb),.75)!important}@media not all and (min-width:48rem){td :is(.ifacebox .ifacebox-head){border-top-left-radius:calc(var(--radius-base) * 3);border-bottom-left-radius:calc(var(--radius-base) * 3);border-right-style:var(--tw-border-style);border-right-width:1px;border-bottom-style:var(--tw-border-style);border-bottom-width:0;border-top-right-radius:0;flex-shrink:0;justify-content:center;align-items:center;width:auto;display:flex}}.ifacebox .ifacebox-head.cbi-tooltip-container{background-color:#0000;position:static}.ifacebox .ifacebox-head.cbi-tooltip-container .cbi-tooltip{bottom:0;left:0}.ifacebox .ifacebox-head.active{border-color:var(--brand);background-color:var(--brand);color:var(--on-brand)}.ifacebox .ifacebox-body{justify-content:center;align-items:stretch;gap:var(--spacing);border-bottom-right-radius:calc(var(--radius-base) * 2);border-bottom-left-radius:calc(var(--radius-base) * 2);width:100%;padding:calc(var(--spacing) * 4);text-align:center;color:var(--text);flex-direction:column;flex:1;display:flex}@media not all and (min-width:48rem){.ifacebox .ifacebox-body{border-bottom-right-radius:calc(var(--radius-base) * 3);border-bottom-left-radius:calc(var(--radius-base) * 3)}td :is(.ifacebox .ifacebox-body){border-top-right-radius:calc(var(--radius-base) * 3);border-bottom-right-radius:calc(var(--radius-base) * 3);padding-block:calc(var(--spacing) * 2);padding-right:calc(var(--spacing) * 2);padding-left:calc(var(--spacing) * 4);border-bottom-left-radius:0;flex-direction:row;align-items:center}}.ifacebox .ifacebox-body>img{margin-inline:auto}:where(.ifacebox .ifacebox-body>span>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}.ifacebox .ifacebox-body>span{color:var(--text)}@media not all and (min-width:48rem){:where(.ifacebox .ifacebox-body>span>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}.ifacebox .ifacebox-body>span{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}}.network-status-table :is(.ifacebox .ifacebox-body>span){width:100%}.ifacebox .ifacebox-body>span .cbi-tooltip-container+.cbi-tooltip-container{margin-left:calc(var(--spacing) * 2)}@media not all and (min-width:48rem){.ifacebox .ifacebox-body>span .cbi-tooltip-container+.cbi-tooltip-container{margin-left:calc(var(--spacing) * 1.5)}}.ifacebox .ifacebox-body>span .cbi-tooltip{transition-delay:.2s}.ifacebox .ifacebox-body>span .nowrap{display:inline-block}.ifacebox .ifacebox-body>span>.nowrap:not(:last-child){margin-bottom:calc(var(--spacing) * 4)}@media not all and (min-width:48rem){.ifacebox .ifacebox-body>span>.nowrap:not(:last-child){margin-bottom:calc(var(--spacing) * 3)}}.ifacebox .ifacebox-body>span img{width:calc(var(--spacing) * 6);flex-shrink:0}@media not all and (min-width:48rem){.ifacebox .ifacebox-body>span img{width:calc(var(--spacing) * 5)}}.ifacebox .ifacebox-body>div{width:100%;display:block}:where(.ifacebox .ifacebox-body>div>:not(:last-child)){--tw-space-y-reverse:0;margin-block:0}@media not all and (min-width:48rem){td :is(.ifacebox .ifacebox-body>div){flex:1;width:auto}:where(td :is(.ifacebox .ifacebox-body>div)>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}}.ifacebox .ifacebox-body .cbi-tooltip-container{cursor:help;color:var(--text);justify-content:center;align-items:center;display:inline-flex;position:static}.ifacebox .ifacebox-body .cbi-tooltip-container .cbi-tooltip{bottom:0}@media (min-width:48rem){.ifacebox .ifacebox-body .cbi-tooltip-container .cbi-tooltip{left:0}}.ifacebox .ifacebox-body .cbi-tooltip-container .cbi-tooltip .nowrap{white-space:nowrap}.ifacebox .ifacebox-body small{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4);display:block}@media not all and (min-width:48rem){td :is(.ifacebox .ifacebox-body small){margin-top:0}}.network-status-table .ifacebox-body{justify-content:space-around;align-items:center;gap:calc(var(--spacing) * 2);flex-direction:column;flex:1;height:100%;display:flex}.network-status-table .ifacebox-body>div{flex-wrap:wrap;display:flex}.network-status-table .ifacebox-body .ifacebadge{flex:1}#modal_overlay{pointer-events:none;background-color:#0000;display:none;position:fixed;top:0;bottom:0;overflow:auto}.modal-overlay-active #modal_overlay{pointer-events:auto;z-index:100;background-color:var(--scrim);--tw-backdrop-blur:blur(var(--blur-md));--tw-backdrop-saturate:saturate(150%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);grid-template-columns:repeat(1,minmax(0,1fr));place-items:center;display:grid;inset:0}#modal_overlay>.modal{width:var(--container-5xl);gap:calc(var(--spacing) * 4);border-radius:calc(var(--radius-base) * 3);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface-overlay);padding:calc(var(--spacing) * 6);overflow-wrap:break-word;white-space:normal;--tw-shadow:var(--app-shadow-lg);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);flex-direction:column;display:flex;position:relative}@media not all and (min-width:48rem){#modal_overlay>.modal{gap:calc(var(--spacing) * 3);width:100%;padding:calc(var(--spacing) * 4)}}#modal_overlay>.modal h4{text-align:center;margin-bottom:0}#modal_overlay>.modal h4 em{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--brand)}#modal_overlay>.modal h5{margin-block:calc(var(--spacing) * 3);color:var(--text)}#modal_overlay>.modal p{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed);color:var(--text)}#modal_overlay>.modal>ul{border-radius:calc(var(--radius-base) * 2);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);padding:calc(var(--spacing) * 3);overflow:auto}#modal_overlay>.modal label.btn{border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface-sunken);color:var(--text)}@media (hover:hover){#modal_overlay>.modal label.btn:hover{border-color:var(--hairline)}}#modal_overlay>.modal pre{overflow:auto}#modal_overlay>.modal pre.errors{border-color:var(--hairline);background-color:var(--danger-surface);color:var(--danger)}#modal_overlay>.modal pre+pre{margin-top:calc(var(--spacing) * 3)}#modal_overlay>.modal .button-row,#modal_overlay>.modal div.left,#modal_overlay>.modal div.right{gap:calc(var(--spacing) * 3);border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--hairline);padding:calc(var(--spacing) * 4);flex-shrink:0;display:flex}@media not all and (min-width:48rem){#modal_overlay>.modal .button-row,#modal_overlay>.modal div.left,#modal_overlay>.modal div.right{gap:calc(var(--spacing) * 1.5);padding:calc(var(--spacing) * 2.5)}}#modal_overlay>.modal div.left{justify-content:flex-start}#modal_overlay>.modal .button-row,#modal_overlay>.modal div.right{justify-content:flex-end}#modal_overlay>.modal.uci-dialog ins,#modal_overlay>.modal.uci-dialog del,#modal_overlay>.modal.uci-dialog var{font-family:var(--font-mono);--tw-shadow:var(--app-shadow-sm);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);font-style:normal;text-decoration-line:none}#modal_overlay>.modal.uci-dialog ins{border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--success-surface);color:var(--success)}#modal_overlay>.modal.uci-dialog del{border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--danger-surface);color:var(--danger)}#modal_overlay>.modal.uci-dialog var{border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--info-surface);color:var(--info)}#modal_overlay>.modal.uci-dialog .uci-change-legend{margin-top:calc(var(--spacing) * 4);gap:calc(var(--spacing) * 3);border-radius:calc(var(--radius-base) * 2);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface-sunken);padding:calc(var(--spacing) * 4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media not all and (min-width:48rem){#modal_overlay>.modal.uci-dialog .uci-change-legend{gap:calc(var(--spacing) * 2);padding:calc(var(--spacing) * 3);grid-template-columns:repeat(1,minmax(0,1fr))}}#modal_overlay>.modal.uci-dialog .uci-change-legend .uci-change-legend-label{align-items:center;gap:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--text);display:flex}#modal_overlay>.modal.uci-dialog .uci-change-legend .uci-change-legend-label ins,#modal_overlay>.modal.uci-dialog .uci-change-legend .uci-change-legend-label del,#modal_overlay>.modal.uci-dialog .uci-change-legend .uci-change-legend-label var{height:calc(var(--spacing) * 6);min-width:calc(var(--spacing) * 6);border-radius:var(--radius-base);padding-inline:calc(var(--spacing) * 2);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);justify-content:center;align-items:center;display:flex}#modal_overlay>.modal.uci-dialog .uci-change-legend .uci-change-legend-label var ins,#modal_overlay>.modal.uci-dialog .uci-change-legend .uci-change-legend-label var del{margin-left:var(--spacing);height:calc(var(--spacing) * 4);min-width:calc(var(--spacing) * 4);padding-inline:var(--spacing)}#modal_overlay>.modal.uci-dialog .uci-change-list{margin-top:calc(var(--spacing) * 4)}:where(#modal_overlay>.modal.uci-dialog .uci-change-list>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}#modal_overlay>.modal.uci-dialog .uci-change-list h5{margin-top:calc(var(--spacing) * 6);margin-bottom:calc(var(--spacing) * 2);border-radius:calc(var(--radius-base) * 1.5);background-color:var(--surface-sunken);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--text)}#modal_overlay>.modal.uci-dialog .uci-change-list h5:first-child{margin-top:0}#modal_overlay>.modal.uci-dialog .uci-change-list ins,#modal_overlay>.modal.uci-dialog .uci-change-list del{border-radius:calc(var(--radius-base) * 1.5);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 3);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));display:block}:is(#modal_overlay>.modal.uci-dialog .uci-change-list ins,#modal_overlay>.modal.uci-dialog .uci-change-list del) strong{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}#modal_overlay>.modal.uci-dialog .uci-change-list var{border-radius:var(--radius-base);padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));display:inline-block}#modal_overlay>.modal.uci-dialog .uci-change-list var ins,#modal_overlay>.modal.uci-dialog .uci-change-list var del{margin-left:var(--spacing);padding-inline:calc(var(--spacing) * 1.5);padding-block:calc(var(--spacing) * .5);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));display:inline-block}@media not all and (min-width:48rem){.mobile-menu-overlay{visibility:hidden;z-index:60;background-color:var(--mega-menu-bg);opacity:0;position:fixed;inset:0}}@media (min-width:48rem){.mobile-menu-overlay{display:none}}@media not all and (min-width:48rem){.mobile-menu-overlay.mobile-menu-open{visibility:visible;opacity:1;transition-property:visibility,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.25s;transition-duration:.25s}.mobile-menu-overlay .mobile-nav{width:100%;height:100%;padding-top:calc(var(--spacing) * 14);flex-direction:column;display:flex}.mobile-menu-overlay .mobile-nav .mobile-nav-body{min-height:0;padding-inline:calc(var(--spacing) * 5);padding-top:calc(var(--spacing) * 6);flex-direction:column;flex:1;display:flex}.mobile-menu-overlay .mobile-nav .mobile-nav-body .mobile-nav-label{margin-bottom:calc(var(--spacing) * 3);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--text-muted)}.mobile-menu-overlay .mobile-nav .mobile-nav-list{--tw-translate-y:calc(var(--spacing) * -2);min-height:0;translate:var(--tw-translate-x) var(--tw-translate-y);overscroll-behavior:contain;padding:0;padding-bottom:calc(var(--spacing) * 5);opacity:0;flex-direction:column;flex:1;margin:0;list-style-type:none;display:flex;overflow-y:auto}.mobile-menu-overlay .mobile-nav .mobile-nav-list .mobile-nav-item{flex-shrink:0}.mobile-menu-overlay .mobile-nav .mobile-nav-list .mobile-nav-item .mobile-nav-link{min-height:calc(var(--spacing) * 13);justify-content:space-between;align-items:center;gap:calc(var(--spacing) * 4);border-style:var(--tw-border-style);width:100%;padding-inline:0;padding-block:calc(var(--spacing) * 2.5);text-align:left;font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height));--tw-leading:var(--leading-tight);line-height:var(--leading-tight);--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight);--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);background-color:#0000;border-width:0;border-radius:0;text-decoration-line:none;display:flex}.mobile-menu-overlay .mobile-nav .mobile-nav-list .mobile-nav-item .mobile-nav-submenu .mobile-nav-submenu-list{margin-inline:0;margin-top:0;margin-bottom:calc(var(--spacing) * 2);padding-block:var(--spacing);padding-right:0;padding-left:calc(var(--spacing) * 4)}.mobile-menu-overlay .mobile-nav .mobile-nav-list .mobile-nav-item .mobile-nav-submenu .mobile-nav-subitem .mobile-nav-sublink{min-height:calc(var(--spacing) * 10);width:100%;padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));align-items:center}.mobile-menu-overlay .mobile-nav .mobile-nav-footer{border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--hairline);padding-inline:calc(var(--spacing) * 5);padding-top:calc(var(--spacing) * 4);padding-bottom:max(1rem, env(safe-area-inset-bottom));flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.mobile-menu-overlay .mobile-nav .mobile-nav-footer .mobile-nav-footer-action{align-items:center;display:flex}.mobile-menu-overlay .mobile-nav .mobile-nav-footer .mobile-nav-logout{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--text);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;text-decoration-line:none;transition-duration:.15s}@media (hover:hover){.mobile-menu-overlay .mobile-nav .mobile-nav-footer .mobile-nav-logout:hover{color:var(--brand)}}.mobile-menu-overlay .mobile-nav .mobile-nav-footer .theme-switcher .theme-option{padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing)}.mobile-menu-overlay.mobile-menu-open .mobile-nav-list{--tw-translate-y:0;translate:var(--tw-translate-x) var(--tw-translate-y);opacity:1;transition-property:translate,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.25s;--tw-ease:var(--ease-out);transition-duration:.25s;transition-timing-function:var(--ease-out)}body.mobile-navigation-open>header{z-index:70;background-color:#0000}}[data-nav-type=mega-menu] .desktop-menu-overlay{pointer-events:none;visibility:hidden;z-index:60;background-color:var(--mega-menu-scrim);opacity:0;--tw-backdrop-blur:blur(var(--blur-lg));--tw-backdrop-saturate:saturate(150%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);transition-property:opacity,visibility;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.22s;--tw-ease:cubic-bezier(.4,0,.6,1);transition-duration:.22s;transition-timing-function:cubic-bezier(.4,0,.6,1);position:fixed;inset:0}@media not all and (min-width:48rem){[data-nav-type=mega-menu] .desktop-menu-overlay{display:none}}[data-nav-type=mega-menu] .desktop-menu-overlay.active{pointer-events:auto;visibility:visible;opacity:1}table.table,.table{margin-bottom:calc(var(--spacing) * 3);border-collapse:separate;--tw-border-spacing-x:0;--tw-border-spacing-y:0;width:100%;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y);border-radius:calc(var(--radius-base) * 2);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);overflow:visible}@media not all and (min-width:48rem){table.table,.table{border-style:var(--tw-border-style);--tw-shadow:0 0 #0000;width:100%;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);border-width:0;border-radius:0;margin-inline:0;display:block;overflow:visible}}:is(table.table,.table)[width="100%"]{width:100%}:is(table.table,.table)[width="33%"]{width:33.3333%}:is(table.table,.table) .cbi-section-table-titles{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}:is(:is(table.table,.table) .cbi-section-table-titles.named,:is(table.table,.table) .cbi-section-table-descr.named,:is(table.table,.table) .cbi-section-table-row[data-title]):before{content:var(--tw-content);content:var(--tw-content);border-color:var(--hairline);content:var(--tw-content);padding-inline:calc(var(--spacing) * 3);content:var(--tw-content);padding-block:calc(var(--spacing) * 3);content:var(--tw-content);vertical-align:middle;content:var(--tw-content);font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));content:var(--tw-content);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);--tw-content:attr(data-title);content:var(--tw-content);content:var(--tw-content);display:table-cell}@media not all and (min-width:48rem){:is(:is(table.table,.table) .cbi-section-table-titles.named,:is(table.table,.table) .cbi-section-table-descr.named,:is(table.table,.table) .cbi-section-table-row[data-title]):before{padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2.5);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));flex:0 0 100%;display:flex}}:is(:is(table.table,.table) .cbi-section-table-titles.named,:is(table.table,.table) .cbi-section-table-descr.named,:is(table.table,.table) .cbi-section-table-row[data-title]):before{content:var(--tw-content)}@media (min-width:48rem){:is(:is(table.table,.table) .cbi-section-table-titles.named,:is(table.table,.table) .cbi-section-table-descr.named,:is(table.table,.table) .cbi-section-table-row[data-title]):before{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}}:is(:is(:is(table.table,.table) .cbi-section-table-titles.named,:is(table.table,.table) .cbi-section-table-descr.named,:is(table.table,.table) .cbi-section-table-row[data-title]):not([data-title]),:is(:is(table.table,.table) .cbi-section-table-titles.named,:is(table.table,.table) .cbi-section-table-descr.named,:is(table.table,.table) .cbi-section-table-row[data-title]):has(td.cbi-section-table-titles)):before{content:var(--tw-content);--tw-content:none;content:none}:is(table.table,.table) .cbi-section-table-titles.named:before{content:var(--tw-content);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));content:var(--tw-content);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);content:var(--tw-content);--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider);content:var(--tw-content);color:var(--text-subtle);content:var(--tw-content);text-transform:uppercase}@media not all and (min-width:48rem){:is(table.table,.table) tbody,:is(table.table,.table) .tbody{display:block}:is(table.table,.table) tr,:is(table.table,.table) .tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--hairline);padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * 2);flex-wrap:wrap;display:flex}:is(:is(table.table,.table) tr,:is(table.table,.table) .tr):has(.cbi-progressbar){justify-content:center;align-items:center;display:flex}}:is(:is(:is(table.table,.table) tr,:is(table.table,.table) .tr):first-child th,:is(:is(table.table,.table) tr,:is(table.table,.table) .tr):first-child .th):first-child{border-top-left-radius:calc(var(--radius-base) * 2)}:is(:is(:is(table.table,.table) tr,:is(table.table,.table) .tr):first-child th,:is(:is(table.table,.table) tr,:is(table.table,.table) .tr):first-child .th):last-child{border-top-right-radius:calc(var(--radius-base) * 2)}@media not all and (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr):last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}}:is(:is(table.table,.table) tr,:is(table.table,.table) .tr):last-child[data-title]:before{content:var(--tw-content);border-bottom-style:var(--tw-border-style);border-bottom-width:0}:is(:is(table.table,.table) tr,:is(table.table,.table) .tr):last-child .td{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media not all and (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr).table-titles,:is(:is(table.table,.table) tr,:is(table.table,.table) .tr).cbi-section-table-titles,:is(:is(table.table,.table) tr,:is(table.table,.table) .tr).cbi-section-table-descr{display:none}}:is(:is(table.table,.table) tr,:is(table.table,.table) .tr).cbi-rowstyle-1,:is(:is(table.table,.table) tr,:is(table.table,.table) .tr).cbi-rowstyle-2{background-color:#0000}@media not all and (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-1{flex:2rem}}@media (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-1{width:calc(var(--spacing) * 20);max-width:calc(var(--spacing) * 28)}}:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-2{white-space:normal}@media not all and (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-2{flex:2 2 4rem}}@media (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-2{width:calc(var(--spacing) * 32);max-width:calc(var(--spacing) * 40)}}@media not all and (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-3{flex:3 3 6rem}}@media (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-3{width:calc(var(--spacing) * 44);max-width:calc(var(--spacing) * 52)}}@media not all and (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-4{flex:4 4 8rem}}@media (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-4{width:calc(var(--spacing) * 56);max-width:calc(var(--spacing) * 64)}}@media not all and (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-5{flex:5 5 10rem}}@media (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-5{width:calc(var(--spacing) * 68);max-width:calc(var(--spacing) * 76)}}@media not all and (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-6{flex:6 6 12rem}}@media (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-6{width:calc(var(--spacing) * 80);max-width:calc(var(--spacing) * 88)}}@media not all and (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-7{flex:7 7 14rem}}@media (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-7{width:calc(var(--spacing) * 92);max-width:calc(var(--spacing) * 100)}}@media not all and (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-8{flex:8 8 16rem}}@media (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-8{width:calc(var(--spacing) * 104);max-width:calc(var(--spacing) * 112)}}@media not all and (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-9{flex:9 9 18rem}}@media (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-9{width:calc(var(--spacing) * 116);max-width:calc(var(--spacing) * 124)}}@media not all and (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-10{flex:0 0 100%;max-width:calc(100vw - 40px)}}@media (min-width:48rem){:is(:is(table.table,.table) tr,:is(table.table,.table) .tr)>.col-10{width:calc(var(--spacing) * 128);max-width:calc(var(--spacing) * 136)}}:is(table.table,.table) th,:is(table.table,.table) .th{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--hairline);background-color:var(--surface-sunken);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 3);text-align:left;font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider);color:var(--text-subtle);text-transform:uppercase}@media not all and (min-width:48rem){:is(table.table,.table) th,:is(table.table,.table) .th{border-style:var(--tw-border-style);background-color:#0000;border-width:0;flex:50%}}#cbi-samba4 :is(:is(table.table,.table) th,:is(table.table,.table) .th){padding-inline:calc(var(--spacing) * .5);padding-block:calc(var(--spacing) * 1.5)}:is(:is(table.table,.table) th,:is(table.table,.table) .th)[width="100%"]{width:100%}@media not all and (min-width:48rem){:is(:is(table.table,.table) th,:is(table.table,.table) .th)[width="100%"]{flex:0 0 100%}}:is(:is(table.table,.table) th,:is(table.table,.table) .th)[width="33%"]{width:33.3333%}@media not all and (min-width:48rem){:is(:is(table.table,.table) th,:is(table.table,.table) .th)[width="33%"]{flex:0 0 33.333%}}:is(:is(table.table,.table) th,:is(table.table,.table) .th)[data-sortable-row=true]{cursor:pointer;-webkit-user-select:none;user-select:none}:is(:is(table.table,.table) th,:is(table.table,.table) .th)[data-sortable-row=true]:after{content:var(--tw-content);margin-left:calc(var(--spacing) * .5);content:var(--tw-content);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}@media (hover:hover){:is(:is(table.table,.table) th,:is(table.table,.table) .th)[data-sortable-row=true]:hover{background-color:var(--hover-faint)}}:is(:is(table.table,.table) th,:is(table.table,.table) .th)[data-sortable-row=true][data-sort-direction=asc]:after{--tw-content:"▲";content:var(--tw-content)}:is(:is(table.table,.table) th,:is(table.table,.table) .th)[data-sortable-row=true][data-sort-direction=desc]:after{--tw-content:"▼";content:var(--tw-content)}:is(table.table,.table)[id*=status_leases] .td{max-width:calc(var(--spacing) * 62)}@media not all and (min-width:48rem){:is(table.table,.table)[id*=status_leases] .td{max-width:100%}}:is(table.table,.table) td,:is(table.table,.table) .td{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--hairline);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 3);vertical-align:middle;font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));overflow-wrap:break-word;white-space:normal;display:table-cell}@media not all and (min-width:48rem){:is(table.table,.table) td,:is(table.table,.table) .td{border-style:var(--tw-border-style);padding-inline:var(--spacing);padding-block:var(--spacing);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));border-width:0;flex:50%}}:is(:is(table.table,.table) td,:is(table.table,.table) .td):before{content:var(--tw-content);--tw-content:attr(data-title);content:var(--tw-content);content:var(--tw-content);display:none}@media not all and (min-width:48rem){:is(:is(table.table,.table) td,:is(table.table,.table) .td):before{margin-bottom:var(--spacing);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);display:block}}:is(:is(table.table,.table) td,:is(table.table,.table) .td):before{content:var(--tw-content)}@media not all and (min-width:48rem){:is(:is(table.table,.table) td,:is(table.table,.table) .td):before{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}}#cbi-samba4 :is(:is(table.table,.table) td,:is(table.table,.table) .td){padding-inline:calc(var(--spacing) * .5);padding-block:calc(var(--spacing) * 1.5)}[data-page=admin-system-mounts] :is(:is(table.table,.table) td,:is(table.table,.table) .td){max-width:calc(var(--spacing) * 104)}@media not all and (min-width:48rem){[data-page=admin-system-mounts] :is(:is(table.table,.table) td,:is(table.table,.table) .td){max-width:100%}#wifi_assoclist_table :is(:is(table.table,.table) td,:is(table.table,.table) .td){padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);flex:0 0 100%}}#wifi_assoclist_table :is(:is(table.table,.table) td,:is(table.table,.table) .td):before{content:var(--tw-content)}@media not all and (min-width:48rem){#wifi_assoclist_table :is(:is(table.table,.table) td,:is(table.table,.table) .td):before{margin-bottom:calc(var(--spacing) * 1.5)}}:is(:is(table.table,.table) td,:is(table.table,.table) .td)>input[type=text],:is(:is(table.table,.table) td,:is(table.table,.table) .td)>input[type=password],:is(:is(table.table,.table) td,:is(table.table,.table) .td) select,:is(:is(table.table,.table) td,:is(table.table,.table) .td) .cbi-dropdown:not(.btn):not(.cbi-button){width:100%}:is(:is(table.table,.table) td,:is(table.table,.table) .td) select,:is(:is(table.table,.table) td,:is(table.table,.table) .td) .cbi-dropdown:not(.btn):not(.cbi-button){min-width:fit-content}:is(:is(table.table,.table) td,:is(table.table,.table) .td).cbi-value-field{word-break:break-all}@media not all and (min-width:48rem){:is(:is(table.table,.table) td,:is(table.table,.table) .td).cbi-value-field{margin-bottom:var(--spacing);text-align:left;flex-basis:100%;align-self:flex-start}:is(:is(table.table,.table) td,:is(table.table,.table) .td).cbi-value-field[data-widget=CBI\.DummyValue],:is(:is(table.table,.table) td,:is(table.table,.table) .td).cbi-value-field[data-widget=CBI\.Button],:is(:is(table.table,.table) td,:is(table.table,.table) .td).cbi-value-field[data-widget=CBI\.FlagValue],:is(:is(table.table,.table) td,:is(table.table,.table) .td).cbi-value-field[data-widget=dvalue],:is(:is(table.table,.table) td,:is(table.table,.table) .td).cbi-value-field[data-widget=button],:is(:is(table.table,.table) td,:is(table.table,.table) .td).cbi-value-field[data-widget=fvalue]{flex-basis:50%}:is(:is(table.table,.table) td,:is(table.table,.table) .td).cbi-section-actions{flex:0 0 100%}:is(:is(table.table,.table) td,:is(table.table,.table) .td).cbi-section-actions>div{width:100%}:is(:is(table.table,.table) td,:is(table.table,.table) .td).cbi-section-actions>div>.cbi-button{flex:1}:is(:is(table.table,.table) td,:is(table.table,.table) .td)>.cbi-button{width:100%}}:is(:is(table.table,.table) td,:is(table.table,.table) .td)[width="100%"]{width:100%}@media not all and (min-width:48rem){:is(:is(table.table,.table) td,:is(table.table,.table) .td)[width="100%"]{flex:0 0 100%}}:is(:is(table.table,.table) td,:is(table.table,.table) .td)[width="33%"]{width:33.3333%}@media not all and (min-width:48rem){:is(:is(table.table,.table) td,:is(table.table,.table) .td)[width="33%"]{flex:0 0 33.333%}[data-page=admin-network-network] :is(:is(table.table,.table) td,:is(table.table,.table) .td)[data-name=_ifacebox],[data-page=admin-network-network] :is(:is(table.table,.table) td,:is(table.table,.table) .td)[data-name=_ifacestat]{flex-basis:100%}}.cbi-section-table .cbi-section-table-titles .cbi-section-table-cell{width:auto!important}#content_syslog.log-enhanced>#syslog{display:none}.syslog-view{border-radius:calc(var(--radius-base) * 3);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface-sunken);width:100%;padding:calc(var(--spacing) * 6);color:var(--text);--tw-shadow:var(--app-shadow-md);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);display:block}@media not all and (min-width:48rem){.syslog-view{padding:calc(var(--spacing) * 3)}}.syslog-view{font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed);--tw-outline-style:none;outline-style:none;overflow-x:auto}.syslog-view:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-ring-color:var(--focus-ring)}.syslog-view .log-row{border-radius:calc(var(--radius-base) * .75);width:max-content;min-width:100%;padding-inline:calc(var(--spacing) * 2);white-space:pre}.syslog-view .log-row:hover{background-color:var(--hover-faint)}.syslog-view ::selection{background-color:var(--info-surface);color:var(--text)}.syslog-view .log-time{color:var(--text-subtle)}@media (min-width:48rem){.syslog-view .log-time{vertical-align:bottom;min-width:24ch;display:inline-block}}.syslog-view .log-sev{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}@media (min-width:48rem){.syslog-view .log-sev{vertical-align:bottom;min-width:16ch;display:inline-block}}.syslog-view .log-tag{color:var(--text-muted)}@media (min-width:48rem){.syslog-view .log-tag{vertical-align:bottom;min-width:18ch;display:inline-block}}.syslog-view .lv-info .log-sev{color:var(--info)}.syslog-view .lv-notice .log-sev{color:var(--success)}.syslog-view .lv-warn .log-sev{color:var(--warning)}.syslog-view .lv-debug,.syslog-view .lv-debug .log-sev,.syslog-view .lv-debug .log-tag{color:var(--text-subtle)}.syslog-view .lv-err,.syslog-view .lv-crit{background-color:var(--danger-surface)}:is(.syslog-view .lv-err,.syslog-view .lv-crit):hover{background-color:var(--danger-surface-hover)}:is(.syslog-view .lv-err,.syslog-view .lv-crit) .log-sev{color:var(--danger)}.cbi-input-invalid,.cbi-value-error{border-color:var(--danger)!important}:is(.cbi-input-invalid,.cbi-value-error):focus{--tw-ring-color:var(--danger)!important}.cbi-value{gap:calc(var(--spacing) * 6);padding-block:calc(var(--spacing) * 1.5);flex-flow:wrap;display:flex}@media not all and (min-width:48rem){.cbi-value{gap:calc(var(--spacing) * 1.5);padding-block:var(--spacing);flex-direction:column}}.cbi-value.hidden{display:none}.cbi-value+.cbi-value{margin-top:calc(var(--spacing) * 3)}@media not all and (min-width:48rem){.cbi-value+.cbi-value{margin-top:calc(var(--spacing) * 2)}}.cbi-value>.cbi-value-title{padding-top:var(--spacing);text-align:right;--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}@media not all and (min-width:48rem){.cbi-value>.cbi-value-title{text-align:left;width:auto}}@media (min-width:48rem){.cbi-value>.cbi-value-title{flex:0 0 12rem}}.cbi-value>.cbi-value-field{flex:1;max-width:100%}.cbi-value>.cbi-value-field:has(>.cbi-dropdown[disabled]){cursor:not-allowed}.cbi-value>.cbi-value-field .cbi-value-description{margin-top:var(--spacing);padding-left:calc(var(--spacing) * 4);--tw-leading:1;overflow-wrap:break-word;color:var(--text-muted);line-height:1;position:relative}.cbi-value>.cbi-value-field .cbi-value-description:not(:empty):before{content:var(--tw-content);content:var(--tw-content);left:calc(var(--spacing) * -.5);content:var(--tw-content);content:var(--tw-content);width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4);content:var(--tw-content);background-color:var(--info);content:var(--tw-content);-webkit-mask:var(--icon-info) center/cover no-repeat;-webkit-mask:var(--icon-info) center/cover no-repeat;-webkit-mask:var(--icon-info) center/cover no-repeat;mask:var(--icon-info) center/cover no-repeat;display:inline-block;position:absolute}.cbi-value>.cbi-section,.cbi-value>.cbi-tblsection{width:100%}.cbi-dynlist{width:max-content;max-width:calc(var(--spacing) * 120);align-items:flex-start;gap:calc(var(--spacing) * 3);flex-direction:column;display:inline-flex}@media not all and (min-width:48rem){.cbi-dynlist{max-width:100%!important}}.cbi-dynlist .item{pointer-events:auto;cursor:move;align-items:flex-start;gap:calc(var(--spacing) * 2);border-radius:calc(var(--radius-base) * 2);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface);padding-block:calc(var(--spacing) * 3);padding-right:calc(var(--spacing) * 10);padding-left:calc(var(--spacing) * 4);word-break:break-all;--tw-shadow:var(--app-shadow-sm);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);transition-property:transform,box-shadow,opacity,border-color,background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;-webkit-user-select:text;user-select:text;flex-direction:column;align-self:stretch;transition-duration:.15s;display:inline-flex;position:relative;overflow:hidden}@media not all and (min-width:48rem){.cbi-dynlist .item{width:100%;padding-block:calc(var(--spacing) * 2.5);padding-right:calc(var(--spacing) * 8);padding-left:calc(var(--spacing) * 3)}}.cbi-dynlist .item:after{content:var(--tw-content);content:var(--tw-content);top:calc(var(--spacing) * 2.5);content:var(--tw-content);right:calc(var(--spacing) * 2);content:var(--tw-content);content:var(--tw-content);height:calc(var(--spacing) * 6);content:var(--tw-content);width:calc(var(--spacing) * 6);content:var(--tw-content);content:var(--tw-content);cursor:pointer;content:var(--tw-content);content:var(--tw-content);content:var(--tw-content);border-radius:calc(var(--radius-base) * 1.5);content:var(--tw-content);background-color:var(--surface-sunken);content:var(--tw-content);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));content:var(--tw-content);--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);content:var(--tw-content);color:var(--text-muted);--tw-content:"×";content:var(--tw-content);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:absolute}.cbi-dynlist .item.dragging{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y);cursor:grabbing;opacity:.5;--tw-shadow:var(--app-shadow-lg);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.cbi-dynlist .item.drag-over{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y);border-color:var(--brand);background-color:var(--brand-subtle);--tw-shadow:var(--app-shadow-md);--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-ring-color:var(--brand-subtle)}.cbi-dynlist .item>span,.cbi-dynlist .item>code{pointer-events:none;border-radius:var(--radius-base);width:100%;font-family:var(--font-mono);--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.cbi-dynlist .placeholder{word-break:break-all}.cbi-dynlist .add-item{align-items:center;gap:calc(var(--spacing) * 1.5);border-radius:calc(var(--radius-base) * 2);border-style:var(--tw-border-style);--tw-border-style:dashed;border-style:dashed;border-width:1px;border-color:var(--hairline);padding-inline:var(--spacing);padding-block:var(--spacing);transition-property:border-color,background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;background-color:#0000;align-self:stretch;transition-duration:.15s;display:inline-flex}@media (hover:hover){.cbi-dynlist .add-item:hover{border-color:var(--hairline);background-color:var(--surface-sunken)}}.cbi-dynlist .add-item>input{min-width:calc(var(--spacing) * 61);flex:1}.cbi-dynlist .add-item>.cbi-button{min-height:calc(var(--spacing) * 6);min-width:calc(var(--spacing) * 6);cursor:pointer;border-radius:calc(var(--radius-base) * 1.5);padding-inline:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);flex-shrink:0;justify-content:center;align-items:center;padding-block:0;display:inline-flex}.cbi-dynlist .add-item>.cbi-button:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.cbi-tabmenu{margin-bottom:var(--spacing);align-items:center;gap:var(--spacing);border-radius:calc(var(--radius-base) * 4);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface-sunken);padding:var(--spacing);display:flex;overflow-x:auto}.cbi-tabmenu li{flex-shrink:0;min-width:fit-content;margin:0;list-style-type:none;position:relative}.cbi-tabmenu li[data-errors]:after{content:var(--tw-content);content:var(--tw-content);top:calc(var(--spacing) * -.5);content:var(--tw-content);right:calc(var(--spacing) * -1.5);content:var(--tw-content);z-index:20;content:var(--tw-content);content:var(--tw-content);min-height:calc(var(--spacing) * 4);content:var(--tw-content);min-width:calc(var(--spacing) * 4);content:var(--tw-content);content:var(--tw-content);content:var(--tw-content);content:var(--tw-content);background-color:var(--danger);content:var(--tw-content);padding-inline:calc(var(--spacing) * 1.5);content:var(--tw-content);padding-block:calc(var(--spacing) * .5);content:var(--tw-content);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));content:var(--tw-content);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);content:var(--tw-content);color:var(--on-brand);--tw-content:attr(data-errors);content:var(--tw-content);border-radius:3.40282e38px;justify-content:center;align-items:center;display:inline-flex;position:absolute}.cbi-tabmenu li[data-errors]>a{border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline)}.cbi-tabmenu li>a{border-radius:calc(var(--radius-base) * 4);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2);text-align:center;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);white-space:nowrap;color:var(--text-muted);text-decoration-line:none;display:block}@media (hover:hover){.cbi-tabmenu li>a:hover{color:var(--text)}}.cbi-tabmenu li.cbi-tab a{background-color:var(--text);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--surface);--tw-shadow:var(--app-shadow-sm);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}[data-tab-title]{visibility:hidden;height:0;overflow:hidden}[data-tab-active=true]{visibility:visible;height:auto;overflow:visible}#tabmenu{margin-bottom:calc(var(--spacing) * 8);width:100%}.tabs{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--hairline);align-items:center;gap:0;display:flex;position:relative;overflow-x:auto}.tabs a{padding-inline:calc(var(--spacing) * 8);padding-block:calc(var(--spacing) * 4);text-align:center;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);white-space:nowrap;color:var(--text-muted);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;transition-duration:.15s;display:block}@media (hover:hover){.tabs a:hover{color:var(--text);text-decoration-line:none}}.tabs>li.active{border-bottom-style:var(--tw-border-style);border-bottom-width:2px;border-color:var(--text)}.tabs>li.active>a{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--text)}.cbi-section-node-tabbed{margin-top:calc(var(--spacing) * 6)}.cmdk-trigger{margin-right:calc(var(--spacing) * 4);width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8);cursor:pointer;border-radius:var(--radius-base);border-style:var(--tw-border-style);color:var(--text);--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;background-color:#0000;border-width:0;flex-shrink:0;place-items:center;padding:0;transition-duration:.15s;display:grid;position:relative}body:not([data-nav-type=sidebar]) .cmdk-trigger{margin-left:auto}.cmdk-trigger:before{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5);--tw-content:"";content:var(--tw-content);-webkit-mask:var(--icon-search) center/contain no-repeat;-webkit-mask:var(--icon-search) center/contain no-repeat;-webkit-mask:var(--icon-search) center/contain no-repeat;mask:var(--icon-search) center/contain no-repeat;background-color:currentColor}.cmdk-trigger:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.cmdk-trigger:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.cmdk-trigger:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-ring-color:var(--focus-ring);--tw-outline-style:none;outline-style:none}.cmdk-panel{top:calc(var(--spacing) * 24);z-index:120;--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);width:min(36rem,100vw - 2.5rem);translate:var(--tw-translate-x) var(--tw-translate-y);border-radius:calc(var(--radius-base) * 2);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:color-mix(in oklab, var(--surface) 85%, transparent);--tw-shadow:var(--app-shadow-lg);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-backdrop-blur:blur(var(--blur-xl));--tw-backdrop-saturate:saturate(150%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);transition-property:opacity,translate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;--tw-ease:var(--ease-out);transition-duration:.15s;transition-timing-function:var(--ease-out);position:fixed;left:50%;overflow:hidden}@starting-style{.cmdk-panel{--tw-translate-y:calc(var(--spacing) * -2);translate:var(--tw-translate-x) var(--tw-translate-y)}}@starting-style{.cmdk-panel{opacity:0}}@media not all and (min-width:48rem){.cmdk-panel{border-style:var(--tw-border-style);background-color:var(--bg);--tw-shadow:0 0 #0000;width:auto;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-backdrop-blur: ;-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);--tw-backdrop-saturate:saturate(100%);border-width:0;border-radius:0;flex-direction:column;display:flex;inset:0;translate:none}}.cmdk-panel .cmdk-inputrow{align-items:center;gap:calc(var(--spacing) * 3);padding-inline:calc(var(--spacing) * 5);padding-block:calc(var(--spacing) * 3.5);display:flex}@media not all and (min-width:48rem){.cmdk-panel .cmdk-inputrow{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--hairline);background-color:var(--surface);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2.5)}}.cmdk-panel .cmdk-inputrow:before{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5);color:var(--text-subtle);--tw-content:"";content:var(--tw-content);-webkit-mask:var(--icon-search) center/contain no-repeat;-webkit-mask:var(--icon-search) center/contain no-repeat;-webkit-mask:var(--icon-search) center/contain no-repeat;mask:var(--icon-search) center/contain no-repeat;background-color:currentColor;flex-shrink:0}.cmdk-panel .cmdk-inputrow .cmdk-input{border-style:var(--tw-border-style);width:100%;min-width:0;font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));color:var(--text);background-color:#0000;border-width:0;border-radius:0;flex:1;padding:0}.cmdk-panel .cmdk-inputrow .cmdk-input::placeholder{color:var(--text-subtle)}.cmdk-panel .cmdk-inputrow .cmdk-input{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.cmdk-panel .cmdk-inputrow .cmdk-input:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-outline-style:none;outline-style:none}.cmdk-panel .cmdk-inputrow .cmdk-clear{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5);cursor:pointer;border-radius:calc(var(--radius-base) * .75);border-style:var(--tw-border-style);color:var(--text-subtle);--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;background-color:#0000;border-width:0;flex-shrink:0;place-items:center;padding:0;transition-duration:.15s;display:grid}.cmdk-panel .cmdk-inputrow .cmdk-clear:before{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4);--tw-content:"";content:var(--tw-content);-webkit-mask:var(--icon-x) center/contain no-repeat;-webkit-mask:var(--icon-x) center/contain no-repeat;-webkit-mask:var(--icon-x) center/contain no-repeat;mask:var(--icon-x) center/contain no-repeat;background-color:currentColor}.cmdk-panel .cmdk-inputrow .cmdk-clear:hover{color:var(--text)}.cmdk-input:placeholder-shown~:is(.cmdk-panel .cmdk-inputrow .cmdk-clear){display:none}.cmdk-panel .cmdk-inputrow .cmdk-cancel{cursor:pointer;border-style:var(--tw-border-style);padding:var(--spacing);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--brand);--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);background-color:#0000;border-width:0;flex-shrink:0;display:none}@media not all and (min-width:48rem){.cmdk-panel .cmdk-inputrow .cmdk-cancel{display:block}}.cmdk-panel .cmdk-list{max-height:calc(var(--spacing) * 80);border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--hairline);padding:calc(var(--spacing) * 2);overflow-y:auto}.cmdk-panel .cmdk-list:empty{display:none}@media not all and (min-width:48rem){.cmdk-panel .cmdk-list{overscroll-behavior:contain;flex:1;max-height:none}}.cmdk-panel .cmdk-list .cmdk-row{align-items:center;gap:calc(var(--spacing) * 3);border-radius:calc(var(--radius-base) * 1.5);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--text);text-decoration-line:none;display:flex}.cmdk-panel .cmdk-list .cmdk-row .cmdk-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.cmdk-panel .cmdk-list .cmdk-row .cmdk-group-name{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--text-subtle);flex-shrink:0;margin-left:auto}.cmdk-panel .cmdk-list .cmdk-row mark{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--brand);background-color:#0000}.cmdk-panel .cmdk-list .cmdk-row.is-selected{background-color:var(--brand-subtle)}.cmdk-panel .cmdk-list .cmdk-row.is-selected .cmdk-title{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--brand)}.cmdk-panel .cmdk-list .cmdk-empty{padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 6);text-align:center;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--text-subtle)}.cmdk-panel .cmdk-footer{align-items:center;gap:calc(var(--spacing) * 4);border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--hairline);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--text-subtle);display:flex}@media not all and (min-width:48rem){.cmdk-panel .cmdk-footer{display:none}}.cmdk-panel .cmdk-footer .cmdk-hint-close{margin-left:auto}.cmdk-panel .cmdk-footer kbd{border-radius:calc(var(--radius-base) * .75);border-style:var(--tw-border-style);border-width:1px;border-color:var(--hairline);background-color:var(--surface-sunken);padding-inline:calc(var(--spacing) * 1.5);font-family:var(--font-mono);color:var(--text-muted);padding-block:1px;font-size:11px}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.cmdk-panel{background-color:var(--surface)}}@media (prefers-reduced-transparency:reduce){.cmdk-panel{background-color:var(--surface)}}.hidden{display:none!important}@media (min-width:48rem){.left{text-align:left!important}}.left:not(td){text-align:left!important}@media (min-width:48rem){.right{text-align:right!important}}.right:not(td){text-align:right!important}@media (min-width:48rem){.top{vertical-align:top!important}}.top:not(td){vertical-align:top!important}@media (min-width:48rem){.bottom{vertical-align:bottom!important}}.bottom:not(td){vertical-align:bottom!important}@media (min-width:48rem){.center{text-align:center!important}}.center:not(td){text-align:center!important}@media (min-width:48rem){.middle{vertical-align:middle!important}}.middle:not(td){vertical-align:middle!important}@media (min-width:48rem){.nowrap:not(span){white-space:nowrap}}.nowrap:not(span):not(td){white-space:nowrap}@keyframes aurora-fade-in{0%{opacity:0}}.fade-in{animation:.25s both aurora-fade-in}.fade-out{pointer-events:none;opacity:0;transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.25s;transition-duration:.25s}.spinning{display:inline-block;position:relative;padding-left:calc(var(--spacing) * 8)!important}.spinning:before{content:var(--tw-content);content:var(--tw-content);content:var(--tw-content);content:var(--tw-content);width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5);content:var(--tw-content);--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y);content:var(--tw-content);animation:var(--animate-spin);content:var(--tw-content);content:var(--tw-content);-webkit-mask:var(--icon-spinning) center/cover no-repeat;-webkit-mask:var(--icon-spinning) center/cover no-repeat;-webkit-mask:var(--icon-spinning) center/cover no-repeat;mask:var(--icon-spinning) center/cover no-repeat;background-color:currentColor;position:absolute;top:50%;left:6px}#view>.spinning:first-child{min-height:calc(var(--spacing) * 48);place-items:center;width:fit-content;margin-inline:auto;display:grid}@media not all and (min-width:48rem){#view>.spinning:first-child{min-height:calc(100dvh - 4rem)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-property:none!important;animation:none!important}.spinning:before{animation:var(--animate-spin)!important}}@media (prefers-reduced-transparency:reduce){*,:before,:after{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}:root{--mega-menu-bg:var(--surface-overlay)}}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-border-spacing-x{syntax:"";inherits:false;initial-value:0}@property --tw-border-spacing-y{syntax:"";inherits:false;initial-value:0}@keyframes spin{to{transform:rotate(360deg)}} diff --git a/luci-theme-aurora/htdocs/luci-static/aurora/patches/admin-status-logs.js b/luci-theme-aurora/htdocs/luci-static/aurora/patches/admin-status-logs.js index 9c17c031e..af606b5d0 100644 --- a/luci-theme-aurora/htdocs/luci-static/aurora/patches/admin-status-logs.js +++ b/luci-theme-aurora/htdocs/luci-static/aurora/patches/admin-status-logs.js @@ -1 +1 @@ -"use strict";!function(){const e=new Set(["kern","user","mail","daemon","auth","syslog","lpr","news","uucp","cron","authpriv","ftp","ntp","security","console","local0","local1","local2","local3","local4","local5","local6","local7","unknown"]),t=new Set(["emerg","alert","crit","err","warn","notice","info","debug"]),n={emerg:"crit",alert:"crit",crit:"crit",err:"err",warn:"warn",notice:"notice",info:"info",debug:"debug"};function o(e){const t=e.match(/^([A-Za-z0-9_.\/-]+(?:\[\d+\])?):\s+([\s\S]*)$/);return t?{tag:t[1],msg:t[2]}:{tag:"",msg:e}}function s(e){const t=e.match(/^(\w{3}) (\d{1,2}), \d{4}, (\d{1,2}):(\d{2}):(\d{2})\s*(AM|PM)?/);if(!t)return e;let n=parseInt(t[3],10);"PM"===t[6]&&n<12&&(n+=12),"AM"===t[6]&&12===n&&(n=0);const o=(n<10?"0":"")+n;return`${t[1]} ${t[2].padStart(2,"0")} ${o}:${t[4]}:${t[5]}`}function c(n){let c=n.match(/^\[(.+?)\]\s+(\w+)\.(\w+):\s+([\s\S]*)$/);return c&&e.has(c[2])&&t.has(c[3])?{time:s(c[1]),fullTime:c[1],fac:c[2],sev:c[3],...o(c[4])}:(c=n.match(/^\w{3} (\w{3}) +(\d{1,2}) (\d{2}:\d{2}:\d{2}) (\d{4}) (\w+)\.(\w+) ([\s\S]*)$/),c&&e.has(c[5])&&t.has(c[6])?{time:`${c[1]} ${c[2].padStart(2,"0")} ${c[3]}`,fullTime:n.slice(0,n.indexOf(` ${c[5]}.${c[6]} `)),fac:c[5],sev:c[6],...o(c[7])}:null)}function l(e){const t=e.match(/^\[\s*(\d+\.\d+)\]\s?([\s\S]*)$/);return t?{time:`[${t[1]}]`,fullTime:"",fac:"",sev:"",...o(t[2])}:null}function a(e,t){const n=(e?e.split(/\n/):[]).map(e=>({line:e,parsed:t(e)})),o=n.reduce((e,t)=>e+(t.parsed?1:0),0);return{rows:n,ratio:n.length?o/n.length:1}}if("undefined"!=typeof module&&module.exports&&(module.exports={parseSyslogLine:c,parseDmesgLine:l,splitTag:o,shortenTime:s,evaluate:a,PARSE_GATE:.8}),"undefined"==typeof document)return;const r=document.body?.dataset?.page||"",d=/(^|-)dmesg(-|$)/.test(r)?l:c;let i=null,u=null;function m(e,t,n){const o=document.createElement("span");return o.className=e,o.textContent=t,n&&(o.title=n),o}function g(e){const t=document.createElement("div");if(!e.parsed)return t.className="log-row",t.textContent=e.line,t;const o=e.parsed;return t.className="log-row"+(o.sev?` lv-${n[o.sev]}`:""),t.appendChild(m("log-time",o.time,o.fullTime)),o.sev&&(t.appendChild(document.createTextNode(" ")),t.appendChild(m("log-sev",o.sev,`${o.fac}.${o.sev}`))),o.tag&&(t.appendChild(document.createTextNode(" ")),t.appendChild(m("log-tag",o.tag,o.tag))),t.appendChild(document.createTextNode(" ")),t.appendChild(m("log-msg",o.msg)),t}function f(){const e=document.getElementById("syslog"),t=document.getElementById("content_syslog");if(!e||!t)return;const n=e.value;if(n===u)return;if(i&&function(e){const t=window.getSelection&&window.getSelection();return!(!t||t.isCollapsed)&&(e.contains(t.anchorNode)||e.contains(t.focusNode))}(i))return;u=n;const{rows:o,ratio:s}=a(n,d);s>=.8?function(e,t,n){i||(i=document.createElement("div"),i.className="syslog-view",e.insertAdjacentElement("afterend",i),t.classList.add("log-enhanced"));const o=document.createDocumentFragment();for(const e of n)o.appendChild(g(e));i.replaceChildren(o)}(e,t,o):function(e){i&&i.remove(),i=null,e.classList.remove("log-enhanced")}(t)}if(setInterval(f,1e3),document.getElementById("syslog"))f();else{const e=new MutationObserver(function(){document.getElementById("syslog")&&(e.disconnect(),f())});e.observe(document.documentElement,{childList:!0,subtree:!0})}}(); \ No newline at end of file +"use strict";!function(){const e=new Set(["kern","user","mail","daemon","auth","syslog","lpr","news","uucp","cron","authpriv","ftp","ntp","security","console","local0","local1","local2","local3","local4","local5","local6","local7","unknown"]),t=new Set(["emerg","alert","crit","err","warn","notice","info","debug"]),n={emerg:"crit",alert:"crit",crit:"crit",err:"err",warn:"warn",notice:"notice",info:"info",debug:"debug"};function o(e){const t=e.match(/^([A-Za-z0-9_.\/-]+(?:\[\d+\])?):\s+([\s\S]*)$/);return t?{tag:t[1],msg:t[2]}:{tag:"",msg:e}}function s(n){let s=n.match(/^\[(.+?)\]\s+(\w+)\.(\w+):\s+([\s\S]*)$/);return s&&e.has(s[2])&&t.has(s[3])?{time:`[${s[1]}]`,fac:s[2],sev:s[3],sevTok:`${s[2]}.${s[3]}:`,...o(s[4])}:(s=n.match(/^(\w{3} \w{3} +\d{1,2} \d{2}:\d{2}:\d{2} \d{4}) (\w+)\.(\w+) ([\s\S]*)$/),s&&e.has(s[2])&&t.has(s[3])?{time:s[1],fac:s[2],sev:s[3],sevTok:`${s[2]}.${s[3]}`,...o(s[4])}:null)}function c(e){const t=e.match(/^(\[\s*\d+\.\d+\])\s?([\s\S]*)$/);return t?{time:t[1],fac:"",sev:"",sevTok:"",tag:"",msg:t[2]}:null}function l(e,t){const n=(e?e.split(/\n/):[]).map(e=>({line:e,parsed:t(e)})),o=n.reduce((e,t)=>e+(t.parsed?1:0),0);return{rows:n,ratio:n.length?o/n.length:1}}if("undefined"!=typeof module&&module.exports&&(module.exports={parseSyslogLine:s,parseDmesgLine:c,splitTag:o,evaluate:l,PARSE_GATE:.8}),"undefined"==typeof document)return;const a=document.body?.dataset?.page||"",d=/(^|-)dmesg(-|$)/.test(a)?c:s;let r=null,i=null;function u(e,t,n){const o=document.createElement("span");return o.className=e,o.textContent=t,n&&(o.title=n),o}function m(e){const t=document.createElement("div");if(!e.parsed)return t.className="log-row",t.textContent=e.line,t;const o=e.parsed;return t.className="log-row"+(o.sev?` lv-${n[o.sev]}`:""),t.appendChild(u("log-time",o.time)),o.sevTok&&(t.appendChild(document.createTextNode(" ")),t.appendChild(u("log-sev",o.sevTok))),o.tag&&(t.appendChild(document.createTextNode(" ")),t.appendChild(u("log-tag",o.tag+":"))),t.appendChild(document.createTextNode(" ")),t.appendChild(u("log-msg",o.msg)),t}function g(){const e=document.getElementById("syslog"),t=document.getElementById("content_syslog");if(!e||!t)return;const n=e.value;if(n===i)return;if(r&&function(e){const t=window.getSelection&&window.getSelection();return!(!t||t.isCollapsed)&&(e.contains(t.anchorNode)||e.contains(t.focusNode))}(r))return;i=n;const{rows:o,ratio:s}=l(n,d);if(s>=.8){const n=r&&window.innerHeight+window.scrollY>=document.documentElement.scrollHeight-40;!function(e,t,n){r||(r=document.createElement("div"),r.className="syslog-view",r.tabIndex=0,r.addEventListener("keydown",function(e){if((e.ctrlKey||e.metaKey)&&"a"===e.key.toLowerCase()){e.preventDefault();const t=window.getSelection();t.removeAllRanges();const n=document.createRange();n.selectNodeContents(r),t.addRange(n)}}),e.insertAdjacentElement("afterend",r),t.classList.add("log-enhanced"));const o=document.createDocumentFragment();for(const e of n)o.appendChild(m(e));r.replaceChildren(o)}(e,t,o),n&&window.scrollTo(0,document.documentElement.scrollHeight)}else!function(e){r&&r.remove(),r=null,e.classList.remove("log-enhanced")}(t)}if(setInterval(g,1e3),document.getElementById("syslog"))g();else{const e=new MutationObserver(function(){document.getElementById("syslog")&&(e.disconnect(),g())});e.observe(document.documentElement,{childList:!0,subtree:!0})}}(); \ No newline at end of file diff --git a/openlist2/Makefile b/openlist2/Makefile index 902828b5a..fc46d46f3 100644 --- a/openlist2/Makefile +++ b/openlist2/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=openlist2 PKG_VERSION:=4.2.4 PKG_WEB_VERSION:=4.2.4 -PKG_RELEASE:=11 +PKG_RELEASE:=12 PKG_SOURCE:=openlist-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/OpenListTeam/OpenList/tar.gz/v$(PKG_VERSION)? @@ -28,7 +28,7 @@ define Download/openlist-frontend HASH:=skip endef -PKG_BUILD_DEPENDS:=golang/host fuse +PKG_BUILD_DEPENDS:=golang/host PKG_BUILD_PARALLEL:=1 PKG_USE_MIPS16:=0 PKG_BUILD_FLAGS:=no-mips16 @@ -42,8 +42,9 @@ GO_PKG_LDFLAGS:= \ -X '$(GO_PKG)/internal/conf.GitCommit=tarball/$(shell echo $(PKG_HASH) | cut -c 1-7)' \ -X '$(GO_PKG)/internal/conf.Version=v$(PKG_VERSION) (OpenWrt $(ARCH_PACKAGES))' \ -X '$(GO_PKG)/internal/conf.WebVersion=v$(PKG_WEB_VERSION)' +GO_PKG_EXCLUDES:=internal/fuse ifneq ($(CONFIG_ARCH_64BIT),y) - GO_PKG_EXCLUDES:=drivers/lark + GO_PKG_EXCLUDES+=drivers/lark endif include $(INCLUDE_DIR)/package.mk @@ -75,10 +76,6 @@ ifeq ($(ARCH),arm) endif endif -ifneq ($(CONFIG_USE_MUSL),) - TARGET_CFLAGS += -D_LARGEFILE64_SOURCE -endif - define Build/Prepare $(call Build/Prepare/Default) mkdir -p $(PKG_BUILD_DIR)/public/dist diff --git a/openlist2/files/openlist2.config b/openlist2/files/openlist2.config index 8968b214a..3851fcd2a 100644 --- a/openlist2/files/openlist2.config +++ b/openlist2/files/openlist2.config @@ -76,3 +76,4 @@ config openlist2 option enable_pasv_conn_ip_check '1' option sftp '0' option sftp_port '5222' + option mcp '0' diff --git a/openlist2/files/openlist2.init b/openlist2/files/openlist2.init index 0984813ff..d2e25863d 100755 --- a/openlist2/files/openlist2.init +++ b/openlist2/files/openlist2.init @@ -184,6 +184,9 @@ get_config() { config_get sftp "$1" sftp 0 config_get sftp_port "$1" sftp_port 5222 + # mcp + config_get mcp "$1" mcp 0 + # init jwt_secret if [ -z "$jwt_secret" ]; then jwt_secret=$(tr -cd "a-zA-Z0-9" < "/dev/urandom" | head -c16) @@ -419,6 +422,11 @@ start_service() { json_add_string "listen" ":$sftp_port" json_close_object + # mcp + json_add_object "mcp" + json_add_boolean "enable" "$mcp" + json_close_object + json_add_string "last_launched_version" "$last_launched_version" json_add_string "proxy_address" "$proxy_address"