:root{color:#1c1c1e;font-synthesis:none;text-rendering:optimizelegibility;background:#f2f2f7}*{box-sizing:border-box;letter-spacing:0}html,body,#root{min-width:320px;min-height:100%;margin:0}body{min-height:100vh}button,input,textarea{font:inherit}.shell{background:#f2f2f7;min-height:100vh}.topbar{z-index:100;height:50px;padding:0 max(16px, env(safe-area-inset-right)) 0 max(16px, env(safe-area-inset-left));color:#1c1c1e;-webkit-backdrop-filter:saturate(180%)blur(16px);backdrop-filter:saturate(180%)blur(16px);background:#ffffffeb;border-bottom:1px solid #d1d1d6;justify-content:space-between;align-items:center;gap:16px;line-height:normal;display:flex;position:sticky;top:0}.brand,.topbar-actions{align-items:center;min-width:0;display:flex}.brand{gap:9px}.brand>div:last-child{align-items:baseline;gap:7px;min-width:0;display:flex}.brand strong{font-size:16px;line-height:1.2}.brand span{color:#636366;white-space:nowrap;font-size:12px}.brand-mark{color:#fff;background:#248a3d;border-radius:7px;flex:0 0 30px;place-items:center;width:30px;height:30px;font-size:12px;font-weight:800;display:grid}.logout-button{color:#3a3a3c}.content{width:100%;padding:10px max(12px,50vw - 780px) 24px}.workspace{gap:8px;min-width:0;animation:.22s ease-out both workspace-enter;display:grid}.workspace-header{justify-content:space-between;align-items:center;gap:18px;min-height:34px;display:flex}.workspace-header h1.ant-typography{color:#1c1c1e;margin:0;font-size:21px;line-height:1.2}.sync-summary{color:#8e8e93;font-variant-numeric:tabular-nums;justify-items:end;gap:1px;min-width:128px;font-size:11px;display:grid}.sync-summary .ant-badge-status-text{color:#48484a;font-size:12px;font-weight:600}.sync-summary time{min-height:16px}.management-surface{background:#fff;border:1px solid #d1d1d6;border-radius:8px;min-width:0;animation:.24s ease-out 30ms both surface-enter;overflow:hidden}.management-surface>.ant-tabs>.ant-tabs-nav{min-height:46px;margin:0;padding:0 12px}.management-surface>.ant-tabs>.ant-tabs-nav:before{border-color:#e5e5ea}.management-surface .ant-tabs-tab{padding-block:11px;font-weight:600}.management-surface .ant-tabs-content-holder{min-width:0}.tab-actions{padding-left:8px}.tab-actions .ant-btn{min-width:36px}.table-toolbar{background:#f9f9fb;border-bottom:1px solid #e5e5ea;justify-content:space-between;align-items:center;gap:14px;min-height:48px;padding:6px 12px;display:flex}.table-filters{align-items:center;gap:8px;min-width:0;display:flex}.table-filters .ant-input-affix-wrapper{width:min(340px,40vw)}.table-filters .ant-input-prefix{color:#8e8e93}.table-filters .ant-select{width:136px}.table-meta{color:#8e8e93;font-variant-numeric:tabular-nums;flex:none;align-items:center;gap:12px;font-size:11px;display:flex}.table-meta span+span{border-left:1px solid #d1d1d6;padding-left:12px}.table-meta strong{color:#48484a}.management-surface .ant-table-wrapper{min-width:0}.management-surface .ant-table-thead>tr>th{color:#636366;white-space:nowrap;font-size:12px;font-weight:650}.management-surface .ant-table-tbody>tr>td{transition:background-color .14s}.management-surface .ant-table-cell-fix-right{box-shadow:-1px 0 #e5e5ea}.management-surface .ant-table-pagination{margin:8px 12px}.management-surface .ant-empty{margin-block:18px}.primary-cell{gap:2px;min-width:0;display:grid}.primary-cell strong{overflow-wrap:anywhere;color:#1c1c1e}.primary-cell code{color:#8e8e93;text-overflow:ellipsis;white-space:nowrap;font-family:SFMono-Regular,Consolas,monospace;font-size:11px;overflow:hidden}.compact-modal-root{max-width:calc(100vw - 16px);padding-bottom:8px}.compact-modal-container{max-height:calc(100dvh - 16px);padding:0;overflow:hidden}.compact-modal-header{border-bottom:1px solid #e5e5ea;min-height:44px;margin:0;padding:11px 16px}.compact-modal-body{overscroll-behavior:contain;max-height:calc(100dvh - 60px);padding:8px 12px 10px;overflow:auto}.compact-modal-close{top:5px;inset-inline-end:6px}.config-form{min-width:0}.config-meta{border-bottom:1px solid #e5e5ea;grid-template-columns:minmax(220px,1fr) 124px auto;align-items:end;gap:8px;padding-bottom:7px;display:grid}.config-meta .ant-form-item-label{padding-bottom:3px}.editor-mode{gap:3px;min-width:232px;display:grid}.editor-mode>span{color:#3a3a3c;font-size:12px;font-weight:600}.config-editor-section{min-width:0;padding-top:7px}.editor-heading{justify-content:space-between;align-items:center;gap:12px;min-height:28px;display:flex}.editor-heading label{color:#3a3a3c;font-size:12px;font-weight:600}.editor-heading .ant-btn{color:#248a3d}.json-editor{resize:none;color:#1c1c1e;tab-size:2;background:#f9f9fb;font-family:SFMono-Regular,Consolas,monospace;font-size:12px;line-height:1.55;height:clamp(420px,100dvh - 210px,720px)!important}.modal-actions{z-index:3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff5;border-top:1px solid #e5e5ea;justify-content:flex-end;gap:8px;margin:7px -12px -10px;padding:8px 12px 10px;display:flex;position:sticky;bottom:-10px}.config-collapse{background:#fff;border-color:#d1d1d6;max-height:calc(100dvh - 210px);overflow:auto}.config-collapse .ant-collapse-header{min-height:40px;font-weight:650;align-items:center!important;padding-block:8px!important}.config-collapse .ant-collapse-content-box{background:#f9f9fb;padding:8px!important}.collapse-label{align-items:center;gap:7px;display:inline-flex}.collapse-label small{color:#248a3d;text-align:center;background:#eaf7ed;border-radius:8px;min-width:20px;padding:1px 6px;font-size:10px;font-weight:700}.manual-section{min-width:0}.manual-section-toolbar{justify-content:space-between;align-items:end;gap:8px;min-height:36px;display:flex}.manual-section-toolbar.align-end{justify-content:flex-end}.manual-section-toolbar .ant-form-item{width:min(360px,100%);margin:0}.manual-grid{gap:7px 8px;display:grid}.manual-grid .ant-form-item{min-width:0;margin-bottom:0}.manual-grid .ant-form-item-label{padding-bottom:2px}.manual-grid .ant-input-number,.manual-grid .ant-select{width:100%}.node-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.settings-grid{grid-template-columns:1fr 1fr 136px}.system-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.span-2{grid-column:span 2}.editor-list{gap:7px;min-width:0;margin-top:7px;display:grid}.editor-list-item{background:#fff;border:1px solid #d1d1d6;border-radius:7px;min-width:0;padding:8px}.editor-list-item-head{justify-content:space-between;align-items:center;gap:8px;min-height:28px;margin-bottom:4px;display:flex}.editor-list-item-head strong{color:#1c1c1e;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.compact-list{gap:5px}.rule-row,.host-row,.target-row{align-items:center;gap:6px;min-width:0;display:grid}.rule-row{grid-template-columns:170px minmax(170px,1fr) 110px auto}.host-row{grid-template-columns:minmax(150px,.8fr) minmax(190px,1.2fr) 34px}.target-row{grid-template-columns:minmax(100px,.7fr) 92px minmax(180px,1.4fr) 105px 34px}.rule-row .ant-select,.target-row .ant-select,.target-row .ant-input-number{width:100%}.subsection-heading{justify-content:space-between;align-items:center;gap:8px;min-height:38px;margin-top:7px;display:flex}.subsection-heading strong{font-size:12px}.device-summary{background:#f2f2f7;border-radius:7px;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:9px;min-width:0;margin-bottom:14px;padding:10px 12px;display:grid}.device-summary-icon{color:#248a3d;background:#e4f6e8;border-radius:7px;place-items:center;width:36px;height:36px;font-size:17px;display:grid}.device-summary>div{gap:3px;min-width:0;display:grid}.device-summary strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.device-summary .ant-typography{color:#636366;text-overflow:ellipsis;white-space:nowrap;max-width:100%;margin:0;font-size:11px;overflow:hidden}.device-summary .ant-tag{margin:0}.login-page{min-height:100vh;padding:max(24px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));background:#f2f2f7;place-items:center;display:grid}.login-panel{background:#fff;border:1px solid #d1d1d6;border-radius:8px;width:min(420px,100%);padding:28px;animation:.28s ease-out both login-enter;box-shadow:0 16px 48px #00000014}.login-header{text-align:center;justify-items:center;gap:10px;margin-bottom:24px;display:grid}.login-symbol{color:#fff;background:#248a3d;border-radius:8px;place-items:center;width:46px;height:46px;font-size:19px;display:grid}.login-panel h1.ant-typography{color:#1c1c1e;margin:0;font-size:21px;line-height:1.3}.login-panel .ant-form-item-label>label{font-weight:550}.login-panel .ant-btn-primary{margin-top:2px}.login-alert{margin-bottom:16px}.skip-link{z-index:1000;color:#fff;background:#1c1c1e;border-radius:6px;padding:8px 12px;transition:transform .14s;position:fixed;top:8px;left:8px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}:focus-visible{outline-offset:2px;outline:3px solid #007aff66}@keyframes workspace-enter{0%{opacity:.01;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes surface-enter{0%{opacity:.01;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes login-enter{0%{opacity:.01;transform:translateY(8px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=800px){.content{padding:8px 8px 20px}.workspace{gap:7px}.workspace-header{min-height:32px}.workspace-header h1.ant-typography{font-size:19px}.table-toolbar{flex-direction:column;align-items:flex-start;gap:6px}.table-filters{width:100%}.table-filters .ant-input-affix-wrapper{flex:auto;width:auto}.table-meta{justify-content:flex-end;width:100%}.config-meta{grid-template-columns:minmax(0,1fr) 122px}.editor-mode{grid-column:1/-1;grid-template-columns:80px auto;align-items:center;min-width:0}.node-grid,.system-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-grid{grid-template-columns:1fr 1fr}.settings-grid>:last-child{grid-column:1/-1}.rule-row{grid-template-columns:138px minmax(150px,1fr) 100px auto}.target-row{grid-template-columns:minmax(100px,.6fr) 88px minmax(160px,1.4fr) 96px 34px}}@media (width<=560px){.topbar{height:48px;padding-inline:9px}.logout-button{width:38px;min-width:38px;padding:0}.logout-label{display:none}.content{padding:6px 0 16px}.workspace-header{padding-inline:8px}.workspace-header h1.ant-typography{font-size:18px}.sync-summary{min-width:108px}.management-surface{border-left:0;border-right:0;border-radius:0}.management-surface>.ant-tabs>.ant-tabs-nav{min-height:42px;padding-inline:8px}.management-surface .ant-tabs-tab{padding-block:9px}.create-button{width:36px;min-width:36px;padding:0}.create-button-label{display:none}.tab-actions{padding-left:3px;gap:5px!important}.table-toolbar{min-height:0;padding:7px 8px}.table-filters{gap:6px}.table-filters .ant-select{width:112px}.table-meta span:last-child{display:none}.table-meta span+span{border:0;padding-left:0}.management-surface .ant-table-pagination{margin-inline:8px}.compact-modal-root{max-width:calc(100vw - 8px);padding-bottom:4px;top:4px;width:calc(100vw - 8px)!important}.compact-modal-container{max-height:calc(100dvh - 32px)}.compact-modal-header{min-height:42px;padding:10px 12px}.compact-modal-body{max-height:calc(100dvh - 50px);padding:7px 8px calc(8px + env(safe-area-inset-bottom))}.compact-modal-close{top:4px;inset-inline-end:4px}.config-meta{grid-template-columns:minmax(0,1fr) 112px;gap:6px}.editor-mode{grid-template-columns:68px minmax(0,1fr)}.editor-mode .ant-segmented{width:100%}.config-editor-section{padding-top:6px}.json-editor{min-height:260px;height:calc(100dvh - 330px)!important}.config-collapse{max-height:calc(100dvh - 320px)}.config-collapse .ant-collapse-header{padding-inline:9px!important}.config-collapse .ant-collapse-content-box{padding:6px!important}.modal-actions{bottom:calc(-8px - env(safe-area-inset-bottom));margin:6px -8px calc(-8px - env(safe-area-inset-bottom));padding:7px 8px calc(8px + env(safe-area-inset-bottom))}.config-modal .modal-actions .ant-btn{flex:1 1 0}.manual-section-toolbar{flex-direction:column;align-items:stretch}.manual-section-toolbar.align-end{align-items:flex-end}.manual-section-toolbar .ant-form-item{width:100%}.node-grid,.settings-grid,.system-grid{grid-template-columns:minmax(0,1fr)}.span-2,.settings-grid>:last-child{grid-column:auto}.rule-row{background:#fff;border:1px solid #e5e5ea;border-radius:7px;grid-template-columns:minmax(0,1fr) 98px auto;padding:6px}.rule-row>:nth-child(2){grid-area:2/1/auto/-1}.host-row{background:#fff;border:1px solid #e5e5ea;border-radius:7px;grid-template-columns:minmax(0,1fr) 34px;padding:6px}.host-row>:nth-child(2){grid-area:2/1}.host-row>:last-child{grid-area:1/2/span 2}.target-row{background:#fff;border:1px solid #e5e5ea;border-radius:7px;grid-template-columns:minmax(0,1fr) 90px 34px;padding:6px}.target-row>:nth-child(3){grid-area:2/1/auto/span 2}.target-row>:nth-child(4){grid-area:3/1/auto/span 2;width:100%}.target-row>:last-child{grid-area:1/3/span 3}.device-summary{grid-template-columns:36px minmax(0,1fr)}.device-summary>.ant-tag{grid-column:2;justify-self:start}.login-panel{padding:24px 18px}.login-header{margin-bottom:22px}}@media (width<=390px){.brand>div:last-child span{display:none}.sync-summary .ant-badge-status-text{font-size:11px}.table-filters .ant-select{width:106px}.login-panel{padding-inline:16px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
