#app{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100dvh}html,body{height:100%}body{margin:0}*{margin:0;padding:0;box-sizing:border-box}@media (max-width: 767px){body{font-size:14px;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}*{-webkit-overflow-scrolling:touch}a,button,input,textarea{touch-action:manipulation}.desktop-only{display:none!important}}@media (min-width: 768px){.mobile-only{display:none!important}}.fade-enter-active,.fade-leave-active{transition:opacity .22s ease,transform .22s ease}.fade-enter-from,.fade-leave-to{opacity:0;transform:translateY(4px)}@supports (padding: max(0px)){.mobile-safe-top{padding-top:max(20px,env(safe-area-inset-top))}.mobile-safe-bottom{padding-bottom:max(20px,env(safe-area-inset-bottom))}}:root{--apple-bg: #f5f7fa;--apple-bg-soft: #fbfcfe;--apple-surface: rgba(255, 255, 255, .82);--apple-surface-strong: #ffffff;--apple-surface-muted: #f8fafc;--apple-text: #1d1d1f;--apple-text-secondary: #6e6e73;--apple-text-tertiary: #8e8e93;--apple-line: #e5e5ea;--apple-line-strong: #d7dbe2;--apple-primary: #0d9b76;--apple-primary-pressed: #0a7d5f;--apple-primary-soft: rgba(13, 155, 118, .1);--apple-success: #34c759;--apple-success-soft: rgba(52, 199, 89, .12);--apple-warning: #ff9f0a;--apple-warning-soft: rgba(255, 159, 10, .14);--apple-danger: #ff3b30;--apple-danger-soft: rgba(255, 59, 48, .12);--apple-shadow-sm: 0 10px 28px rgba(15, 23, 42, .05);--apple-shadow-md: 0 16px 36px rgba(15, 23, 42, .07);--apple-shadow-lg: 0 24px 56px rgba(15, 23, 42, .1);--apple-radius-xl: 28px;--apple-radius-lg: 22px;--apple-radius-md: 18px;--apple-radius-sm: 14px;--apple-transition-fast: .18s ease;--apple-transition-base: .22s ease;--apple-font-stack: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--el-color-primary: var(--apple-primary);--el-color-primary-light-3: #3db393;--el-color-primary-light-5: #6ec7ad;--el-color-primary-light-7: #a8dfcd;--el-color-primary-light-8: #c9ece0;--el-color-primary-light-9: #e6f7f1;--el-color-primary-dark-2: var(--apple-primary-pressed);--el-color-success: var(--apple-success);--el-color-warning: var(--apple-warning);--el-color-danger: var(--apple-danger);--el-border-radius-base: 14px;--el-border-radius-small: 12px;--el-border-radius-round: 999px;--el-border-color: var(--apple-line);--el-border-color-light: rgba(229, 229, 234, .76);--el-border-color-lighter: rgba(229, 229, 234, .5);--el-bg-color: var(--apple-surface-strong);--el-bg-color-page: var(--apple-bg);--el-bg-color-overlay: rgba(255, 255, 255, .94);--el-fill-color-blank: var(--apple-surface-strong);--el-fill-color-light: #f5f7fb;--el-fill-color-lighter: #f8fafc;--el-fill-color-extra-light: #fafbfd;--el-text-color-primary: var(--apple-text);--el-text-color-regular: #4f5562;--el-text-color-secondary: var(--apple-text-secondary);--el-text-color-placeholder: #a0a4ab;--el-box-shadow-light: var(--apple-shadow-sm);--el-box-shadow: var(--apple-shadow-md);--el-menu-bg-color: transparent;--el-menu-border-color: transparent;--el-menu-hover-bg-color: rgba(0, 122, 255, .08);--van-primary-color: var(--apple-primary);--van-success-color: var(--apple-success);--van-danger-color: var(--apple-danger);--van-warning-color: var(--apple-warning);--van-background: var(--apple-bg);--van-background-2: rgba(255, 255, 255, .84);--van-background-3: rgba(255, 255, 255, .92);--van-text-color: var(--apple-text);--van-text-color-2: #4f5562;--van-text-color-3: var(--apple-text-secondary);--van-border-color: rgba(229, 229, 234, .76);--van-active-color: rgba(0, 122, 255, .08);--van-cell-background: rgba(255, 255, 255, .84);--van-cell-group-background: transparent;--van-cell-group-inset-padding: 0 16px;--van-nav-bar-background: rgba(255, 255, 255, .82);--van-nav-bar-title-text-color: var(--apple-text);--van-nav-bar-icon-color: var(--apple-text);--van-tabbar-background: rgba(255, 255, 255, .88);--van-tabbar-item-text-color: var(--apple-text-secondary);--van-tabbar-item-active-color: var(--apple-primary);--van-tabs-bottom-bar-color: var(--apple-primary);--van-tabs-nav-background: transparent;--van-dialog-background: rgba(255, 255, 255, .96);--van-dialog-radius: 24px;--van-popup-background: rgba(255, 255, 255, .96);--van-popup-round-radius: 24px;--van-field-input-text-color: var(--apple-text)}html{color-scheme:light}body{background:radial-gradient(circle at top left,rgba(13,155,118,.08),transparent 24%),radial-gradient(circle at top right,rgba(52,199,89,.06),transparent 20%),linear-gradient(180deg,var(--apple-bg-soft) 0%,var(--apple-bg) 100%);color:var(--apple-text);font-family:var(--apple-font-stack)}a,button,input,textarea,[role=button]{transition:background-color var(--apple-transition-fast),border-color var(--apple-transition-fast),color var(--apple-transition-fast),box-shadow var(--apple-transition-fast),transform var(--apple-transition-fast)}::selection{background:rgba(0,122,255,.18)}#app{font-family:var(--apple-font-stack);color:var(--apple-text)}.apple-surface{background:var(--apple-surface);border:1px solid rgba(255,255,255,.84);box-shadow:var(--apple-shadow-lg);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.apple-card{background:rgba(255,255,255,.88);border:1px solid rgba(255,255,255,.88);box-shadow:var(--apple-shadow-md);border-radius:var(--apple-radius-lg)}.apple-chip{display:inline-flex;align-items:center;gap:8px;min-height:32px;padding:0 12px;border-radius:999px;background:rgba(255,255,255,.82);border:1px solid var(--apple-line);color:var(--apple-text-secondary);font-size:12px;font-weight:600}.apple-chip.is-primary{color:var(--apple-primary);background:var(--apple-primary-soft);border-color:transparent}.apple-chip.is-success{color:#176a31;background:var(--apple-success-soft);border-color:transparent}.apple-chip.is-warning{color:#875f00;background:var(--apple-warning-soft);border-color:transparent}.apple-chip.is-danger{color:#8a1f19;background:var(--apple-danger-soft);border-color:transparent}.apple-page-title{font-size:32px;line-height:1.1;letter-spacing:-.04em}.apple-page-subtitle{color:var(--apple-text-secondary);font-size:14px;line-height:1.7}.apple-help-text{color:var(--apple-text-secondary);font-size:12px;line-height:1.5}.apple-help-text.is-spaced{margin-top:6px}.apple-help-text.is-bottom{margin-bottom:8px}.apple-help-text.is-empty{margin-top:10px}.apple-help-text.is-error{color:var(--apple-danger)}.apple-option-value{margin-left:8px;color:var(--apple-text-secondary);font-size:13px}.el-button{font-weight:600}.el-button:not(.is-text):not(.is-link){min-height:42px;border-radius:14px;box-shadow:none}.el-button:not(.is-text):not(.is-link):hover{transform:translateY(-1px);box-shadow:var(--apple-shadow-sm)}.el-button.is-plain{background:rgba(255,255,255,.86);border-color:var(--apple-line)}.el-card{border:1px solid rgba(255,255,255,.88);border-radius:var(--apple-radius-lg);box-shadow:var(--apple-shadow-md);background:rgba(255,255,255,.88)}.el-card__header{border-bottom-color:#e5e5eab8}.el-input__wrapper,.el-textarea__inner,.el-select__wrapper{border-radius:16px;box-shadow:0 0 0 1px #e5e5eae6 inset;background:rgba(255,255,255,.96)}.el-input__wrapper:hover,.el-select__wrapper:hover,.el-textarea__inner:hover{box-shadow:0 0 0 1px #007aff38 inset,0 10px 20px #0f172a0a}.el-input__wrapper.is-focus,.el-select__wrapper.is-focused,.el-textarea__inner:focus{box-shadow:0 0 0 1px #007aff57 inset,0 0 0 4px #007aff14!important}.el-dialog{border-radius:26px;background:rgba(255,255,255,.96);border:1px solid rgba(255,255,255,.9);box-shadow:0 28px 64px #0f172a29}.el-dialog__header{margin-right:0}.el-table{--el-table-header-bg-color: rgba(245, 247, 250, .84);--el-table-row-hover-bg-color: rgba(0, 122, 255, .05);border-radius:18px;overflow:hidden}.el-tag{border:0;border-radius:999px}.el-dropdown-menu,.el-select-dropdown,.el-popper.el-picker__popper{border-radius:18px;border:1px solid rgba(229,229,234,.84);box-shadow:var(--apple-shadow-lg);overflow:hidden}.van-nav-bar,.van-tabbar,.van-cell-group,.van-popup{backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.van-cell-group--inset{border:1px solid rgba(255,255,255,.88);box-shadow:var(--apple-shadow-sm)}.van-cell{background:rgba(255,255,255,.9)}.van-button--primary{box-shadow:0 12px 26px #007aff38}body :is(.config-page,.roles-page,.voice-clones-page,.api-tokens-page,.agents-page,.agent-devices-page,.agent-history-page,.agent-config,.speakers-page,.admin-devices,.admin-agents,.mcp-config,.mqtt-config,.mqtt-server-config,.udp-config,.ota-config,.mcp-market-page,.pool-stats,.config-wizard,.vp-docs,.test-page,.test-route,.simple-login-page){padding:10px 0 30px!important;background:transparent!important;color:var(--apple-text)}body :is(.config-page,.roles-page,.voice-clones-page,.api-tokens-page,.agents-page,.agent-devices-page,.agent-history-page,.agent-config,.speakers-page,.admin-devices,.admin-agents,.mcp-config,.mqtt-config,.mqtt-server-config,.udp-config,.ota-config,.mcp-market-page,.pool-stats,.config-wizard,.test-page,.test-route,.simple-login-page) :is(.page-header,.config-description,.form-container){max-width:1360px;margin-left:auto!important;margin-right:auto!important}body :is(.config-page,.roles-page,.voice-clones-page,.api-tokens-page,.agents-page,.agent-devices-page,.agent-history-page,.agent-config,.speakers-page,.admin-devices,.admin-agents,.mcp-config,.mqtt-config,.mqtt-server-config,.udp-config,.ota-config,.mcp-market-page,.pool-stats,.config-wizard,.test-page,.test-route,.simple-login-page) .page-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:18px;margin-bottom:20px!important;padding:24px 28px!important;background:rgba(255,255,255,.82)!important;border:1px solid rgba(255,255,255,.92)!important;border-radius:var(--apple-radius-xl)!important;box-shadow:var(--apple-shadow-md)!important;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}body :is(.config-page,.roles-page,.voice-clones-page,.api-tokens-page,.agents-page,.agent-devices-page,.agent-history-page,.agent-config,.speakers-page,.admin-devices,.admin-agents,.mcp-config,.mqtt-config,.mqtt-server-config,.udp-config,.ota-config,.mcp-market-page,.pool-stats,.config-wizard,.test-page,.test-route,.simple-login-page) :is(.header-left,.header-right,.header-content,.title-section,.header-info){min-width:0}body :is(.config-page,.roles-page,.voice-clones-page,.api-tokens-page,.agents-page,.agent-devices-page,.agent-history-page,.agent-config,.speakers-page,.admin-devices,.admin-agents,.mcp-config,.mqtt-config,.mqtt-server-config,.udp-config,.ota-config,.mcp-market-page,.pool-stats,.config-wizard,.vp-docs,.test-page,.test-route,.simple-login-page) :is(.page-title,.page-header h1,.page-header h2,.vp-hero h1){margin:0!important;color:var(--apple-text)!important;font-size:clamp(28px,3vw,36px)!important;line-height:1.06!important;letter-spacing:-.045em!important;background:none!important;-webkit-text-fill-color:var(--apple-text)!important}body :is(.config-page,.roles-page,.voice-clones-page,.api-tokens-page,.agents-page,.agent-devices-page,.agent-history-page,.agent-config,.speakers-page,.admin-devices,.admin-agents,.mcp-config,.mqtt-config,.mqtt-server-config,.udp-config,.ota-config,.mcp-market-page,.pool-stats,.config-wizard,.vp-docs,.test-page,.test-route,.simple-login-page) :is(.page-subtitle,.subtitle,.lead){margin:8px 0 0!important;color:var(--apple-text-secondary)!important;font-size:14px!important;line-height:1.65!important}body :is(.config-page,.roles-page,.voice-clones-page,.api-tokens-page,.agents-page,.agent-devices-page,.agent-history-page,.agent-config,.speakers-page,.admin-devices,.admin-agents,.mcp-config,.mqtt-config,.mqtt-server-config,.udp-config,.ota-config,.mcp-market-page,.pool-stats,.config-wizard,.test-page,.test-route,.simple-login-page) :is(.title-icon,.card-icon,.connection-icon,.auth-icon,.external-icon,.test-icon){color:var(--apple-primary)!important}body :is(.config-page,.roles-page,.voice-clones-page,.api-tokens-page,.agents-page,.agent-devices-page,.agent-history-page,.agent-config,.speakers-page,.admin-devices,.admin-agents,.mcp-config,.mqtt-config,.mqtt-server-config,.udp-config,.ota-config,.mcp-market-page,.pool-stats,.config-wizard,.test-page,.test-route,.simple-login-page) :is(.config-card,.table-card,.filter-card,.messages-card,.welcome-card,.empty-card,.role-card,.speakers-content,.filter-bar,.group-info-card,.sample-drawer,.device-card,.agent-card,.action-section,.server-item,.record-status,.debug-info,.simple-login-card){background:rgba(255,255,255,.88)!important;border:1px solid rgba(255,255,255,.92)!important;border-radius:var(--apple-radius-lg)!important;box-shadow:var(--apple-shadow-md)!important}body :is(.roles-page,.agents-page,.agent-devices-page,.agent-config,.speakers-page,.admin-devices,.admin-agents) :is(.role-card,.device-card,.agent-card){transition:transform var(--apple-transition-fast),box-shadow var(--apple-transition-fast),border-color var(--apple-transition-fast)}body :is(.roles-page,.agents-page,.agent-devices-page,.agent-config,.speakers-page,.admin-devices,.admin-agents) :is(.role-card,.device-card,.agent-card):hover{transform:translateY(-2px);box-shadow:var(--apple-shadow-lg)!important}body :is(.config-page,.roles-page,.voice-clones-page,.api-tokens-page,.agents-page,.agent-devices-page,.agent-history-page,.agent-config,.speakers-page,.admin-devices,.admin-agents,.mcp-config,.mqtt-config,.mqtt-server-config,.udp-config,.ota-config,.mcp-market-page,.pool-stats,.config-wizard,.test-page,.test-route,.simple-login-page) :is(.server-item,.template-card,.memory-item,.switch-item,.role-preview-card,.prompt-preview,.mcp-result-box,.endpoint-content,.openclaw-command-content,.file-info,.record-status,.tool-picker){background:rgba(248,250,252,.9)!important;border:1px solid var(--apple-line)!important;box-shadow:inset 0 1px #ffffffb3!important}body :is(.config-page,.mcp-config,.mqtt-config,.mqtt-server-config,.udp-config,.ota-config) :is(.form-grid,.server-form-grid){gap:18px!important}body :is(.config-page,.mcp-config,.mqtt-config,.mqtt-server-config,.udp-config,.ota-config) :is(.server-list,.action-section){padding-left:0!important;padding-right:0!important}body :is(.config-page,.mcp-config,.mqtt-config,.mqtt-server-config,.udp-config,.ota-config) :is(.card-header,.server-list-header,.server-item-header,.tools-header,.samples-header,.endpoint-header){display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}body :is(.config-page,.mcp-config,.mqtt-config,.mqtt-server-config,.udp-config,.ota-config) :is(.card-title,.server-list-header h4,.tools-title,.section-title){color:var(--apple-text)!important}body :is(.config-page,.roles-page,.voice-clones-page,.api-tokens-page,.agents-page,.agent-devices-page,.agent-config,.speakers-page,.mcp-config,.mqtt-config,.mqtt-server-config,.udp-config,.ota-config,.simple-login-page) :is(.save-button,.agent-actions .el-button--primary,.device-actions .el-button--primary){background:linear-gradient(180deg,#16b58a 0%,#0d9b76 100%)!important;border:none!important;box-shadow:0 16px 32px #007aff2e!important}body :is(.roles-page,.agents-page,.agent-devices-page,.agent-config,.speakers-page,.admin-devices,.admin-agents) :is(.agent-avatar,.device-icon){background:linear-gradient(180deg,#16b58a 0%,#0d9b76 100%)!important;color:#fff!important;border-radius:18px!important;box-shadow:0 14px 28px #007aff2e!important}body :is(.agents-page,.agent-devices-page) .device-dialog-content .device-icon{background:none!important;box-shadow:none!important;color:var(--apple-primary)!important}body :is(.agents-page,.agent-devices-page,.roles-page,.speakers-page) :is(.status-text,.meta-label,.text-muted,.file-size){color:var(--apple-text-secondary)!important}body :is(.agents-page,.agent-devices-page) :is(.status-dot.active,.status-dot.online){background:var(--apple-success)!important;box-shadow:0 0 0 6px #34c7591f}body :is(.agents-page,.agent-devices-page) .status-dot.offline{background:var(--apple-danger)!important;box-shadow:0 0 0 6px #ff3b301a}body :is(.agent-config,.agents-page) .mcp-tools-section,body :is(.agent-config,.agents-page) .mcp-endpoint-display{margin-top:24px}body :is(.roles-page,.agent-config) .template-card.active{border-color:#007aff47!important;background:rgba(0,122,255,.08)!important;box-shadow:0 0 0 4px #007aff14!important}body :is(.roles-page,.agent-config) .template-card:hover{border-color:#007aff38!important;background:rgba(0,122,255,.04)!important}body .api-tokens-page .doc-link{color:var(--apple-primary)!important;font-weight:600}body .api-tokens-page .doc-link:hover{color:var(--apple-primary-pressed)!important}body .mobile-more-page{padding:10px 0 108px;background:transparent}body .mobile-more-page .van-cell-group{margin:0 0 14px;border:1px solid rgba(255,255,255,.92);border-radius:var(--apple-radius-lg);background:rgba(255,255,255,.84);box-shadow:var(--apple-shadow-sm);overflow:hidden}body .mobile-more-page .van-cell-group__title{padding:0 18px 10px;color:var(--apple-text);font-weight:700}body .mobile-more-page .van-cell{background:rgba(255,255,255,.9)}body .mobile-more-page .van-cell:after{border-bottom-color:#e5e5eab8}body .mobile-more-page .van-cell__label{color:var(--apple-text-secondary)}body .agent-history-page .chat-container{background:linear-gradient(180deg,rgba(255,255,255,.78) 0%,rgba(246,248,251,.96) 100%)!important;border:1px solid rgba(255,255,255,.92)!important;border-radius:var(--apple-radius-xl)!important;box-shadow:var(--apple-shadow-md)!important}body .agent-history-page .message-bubble{border-radius:18px!important;box-shadow:0 14px 24px #0f172a0f!important}body .agent-history-page .message-bubble-left{background:rgba(255,255,255,.94)!important}body .agent-history-page .message-bubble-right{background:linear-gradient(180deg,#16b58a 0%,#0d9b76 100%)!important}body .agent-history-page .message-bubble-right :is(.message-text,.message-time-small,.message-more){color:#ffffffeb!important}body .agent-history-page .pagination{background:transparent!important;border-top:none!important}body .vp-docs{display:flex;gap:24px;max-width:1420px;margin:0 auto;padding:24px 20px 40px;color:var(--apple-text)}body .vp-docs .vp-sidebar{position:sticky;top:20px;align-self:flex-start;min-width:220px;max-height:calc(100vh - 40px);overflow-y:auto;border:1px solid rgba(255,255,255,.92);border-radius:var(--apple-radius-xl);padding:18px 16px;background:rgba(255,255,255,.82);box-shadow:var(--apple-shadow-md);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}body .vp-docs .vp-sidebar-title{color:var(--apple-text);font-size:16px;font-weight:700;margin-bottom:10px}body .vp-docs .vp-nav-item{display:block;padding:10px 12px;border-radius:14px;color:var(--apple-text-secondary);text-decoration:none}body .vp-docs .vp-nav-item:hover{color:var(--apple-primary);background:rgba(0,122,255,.08)}body .vp-docs .vp-content{flex:1;min-width:0}body .vp-docs :is(.vp-hero,.vp-section){background:rgba(255,255,255,.88);border:1px solid rgba(255,255,255,.92);border-radius:var(--apple-radius-xl);box-shadow:var(--apple-shadow-md);padding:24px 28px}body .vp-docs .vp-section{margin-top:20px;border-top:none}body .vp-docs .hero-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}body .vp-docs :is(pre,table){margin-top:12px}body .vp-docs pre{background:#f6f8fb!important;border:1px solid var(--apple-line)!important;border-radius:18px!important;padding:14px 16px!important;overflow:auto}body .vp-docs code{color:var(--apple-text)}body .vp-docs table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--apple-line);border-radius:18px;overflow:hidden;background:rgba(255,255,255,.94)}body .vp-docs th,body .vp-docs td{padding:12px 14px;border-bottom:1px solid rgba(229,229,234,.72);text-align:left;vertical-align:top}body .vp-docs th{background:rgba(245,247,250,.84);color:var(--apple-text)}body .vp-docs tr:last-child td{border-bottom:none}body .vp-docs .method{border-radius:999px;padding:4px 10px}body .vp-docs .method.get{background:rgba(52,199,89,.9)}body .vp-docs .method.post{background:rgba(0,122,255,.92)}body .vp-docs .method.put{background:rgba(255,159,10,.9)}body .vp-docs .method.delete{background:rgba(255,59,48,.92)}@media (max-width: 960px){body .vp-docs{flex-direction:column}body .vp-docs .vp-sidebar{position:static;max-height:none}}@media (max-width: 768px){body :is(.config-page,.roles-page,.voice-clones-page,.api-tokens-page,.agents-page,.agent-devices-page,.agent-history-page,.agent-config,.speakers-page,.admin-devices,.admin-agents,.mcp-config,.mqtt-config,.mqtt-server-config,.udp-config,.ota-config,.mcp-market-page,.pool-stats,.config-wizard,.test-page,.test-route,.simple-login-page){padding:4px 0 22px!important}body :is(.config-page,.roles-page,.voice-clones-page,.api-tokens-page,.agents-page,.agent-devices-page,.agent-history-page,.agent-config,.speakers-page,.admin-devices,.admin-agents,.mcp-config,.mqtt-config,.mqtt-server-config,.udp-config,.ota-config,.mcp-market-page,.pool-stats,.config-wizard,.test-page,.test-route,.simple-login-page) .page-header{padding:20px!important;border-radius:var(--apple-radius-lg)!important}body :is(.config-page,.roles-page,.voice-clones-page,.api-tokens-page,.agents-page,.agent-devices-page,.agent-history-page,.agent-config,.speakers-page,.admin-devices,.admin-agents,.mcp-config,.mqtt-config,.mqtt-server-config,.udp-config,.ota-config,.mcp-market-page,.pool-stats,.config-wizard,.test-page,.test-route,.simple-login-page) :is(.header-right,.endpoint-actions){width:100%;justify-content:flex-start}}
