html,body{width:100%;height:100%}input::-ms-clear{display:none}input::-ms-reveal{display:none}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:#0000;font-family:sans-serif;line-height:1.15}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}address{font-style:normal;line-height:inherit;margin-bottom:1em}input[type=text],input[type=password],input[type=number],textarea{-webkit-appearance:none}ol,ul,dl{margin-top:0;margin-bottom:1em}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}pre,code,kbd,samp{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}a,area,button,[role=button],input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{text-align:left;caption-side:bottom;padding-top:.75em;padding-bottom:.3em}input,button,select,optgroup,textarea{color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner{border-style:none;padding:0}[type=button]::-moz-focus-inner{border-style:none;padding:0}[type=reset]::-moz-focus-inner{border-style:none;padding:0}[type=submit]::-moz-focus-inner{border-style:none;padding:0}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{resize:vertical;overflow:auto}fieldset{border:0;min-width:0;margin:0;padding:0}legend{width:100%;max-width:100%;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal;margin-bottom:.5em;padding:0;display:block}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button{height:auto}[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--font-mono:"JetBrains Mono", "Cascadia Code", "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;--bg:#f8fafc;--panel:#fff;--panel-strong:#f1f5f9;--panel-soft:#f8fafc;--sidebar:#0f172a;--sidebar-strong:#020617;--blue:#0284c7;--blue-hover:#0369a1;--blue-soft:#e0f2fe;--border:#e2e8f0;--border-soft:#f1f5f9;--text-main:#0f172a;--text-subtle:#334155;--text-muted:#64748b;--green:#10b981;--green-ink:#065f46;--green-bg:#ecfdf5;--green-border:#a7f3d0;--orange:#f59e0b;--orange-ink:#92400e;--orange-bg:#fffbeb;--orange-border:#fde68a;--red:#ef4444;--red-ink:#991b1b;--red-bg:#fef2f2;--red-border:#fecaca;--gray-ink:#475569;--gray-bg:#f1f5f9;--gray-border:#e2e8f0;--shadow:0 1px 3px #0f172a0d, 0 1px 2px -1px #0f172a0d;--shadow-md:0 4px 6px -1px #0f172a12, 0 2px 4px -2px #0f172a0a;--radius:4px;--radius-card:8px;--control-height:34px;--control-radius:4px;--control-padding-x:12px;--control-padding-sm:8px;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Microsoft YaHei UI,Microsoft YaHei,sans-serif;line-height:1.5}*{box-sizing:border-box}html{min-width:320px}body{background:var(--bg);min-width:320px;min-height:100vh;color:var(--text-main);margin:0}#root{min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}.mono{font-family:var(--font-mono);font-feature-settings:"tnum" 1}.tabular-nums{font-variant-numeric:tabular-nums}.label-caps{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:600}.eyebrow{color:var(--text-muted);letter-spacing:0;font-size:12px}.muted-text{color:var(--text-muted)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.loading-screen{background:var(--bg);place-items:center;gap:10px;min-height:100vh;padding:24px;display:grid}.primary-button,.ghost-button,.icon-button,.danger-button,.product-delete-button,.segment-control button,.metric-selector button{min-height:var(--control-height);padding:0 var(--control-padding-x);border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);color:var(--text-main);vertical-align:middle;box-sizing:border-box;white-space:nowrap;justify-content:center;align-items:center;gap:8px;font-size:14px;line-height:1.5;text-decoration:none;transition:border-color .2s,color .2s,background-color .2s;display:inline-flex}.primary-button{border-color:var(--blue);background:var(--blue);color:#fff;font-weight:500}.primary-button:hover:not(:disabled){border-color:var(--blue-hover);background:var(--blue-hover)}.ghost-button:hover:not(:disabled),.icon-button:hover:not(:disabled),.segment-control button:hover:not(:disabled),.metric-selector button:hover:not(:disabled){border-color:var(--blue);color:var(--blue);background:var(--blue-soft)}.icon-button{width:var(--control-height);min-width:var(--control-height);flex:0 0 var(--control-height);padding:0}.danger-button{border-color:var(--red);background:var(--red);color:#fff}.danger-button:hover:not(:disabled){background:#ff4d4f;border-color:#ff4d4f}.product-delete-button{background:var(--panel);color:#c5221f;border-color:#c5221f;font-weight:600}.product-delete-button:hover:not(:disabled){color:#a8071a;background:#fff1f0;border-color:#a8071a}.product-delete-button:disabled{cursor:not-allowed;opacity:.65}.link-button{color:var(--blue);cursor:pointer;background:0 0;border:0;margin-left:8px;padding:0;font-size:14px;text-decoration:underline}.segment-control,.metric-selector{background:var(--panel-strong);border:1px solid var(--border-soft);border-radius:var(--radius);align-items:center;gap:2px;padding:3px;display:inline-flex}.segment-control button,.metric-selector button{border-radius:calc(var(--radius) - 1px);height:28px;min-height:28px;color:var(--text-subtle);cursor:pointer;background:0 0;border:0;padding:0 10px;font-size:13px}.segment-control button.is-active,.metric-selector button.is-active{background:var(--panel);color:var(--blue);font-weight:600;box-shadow:0 1px 3px #00000014}.filter-bar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.toolbar-field{min-height:var(--control-height);border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);min-width:160px;color:var(--text-subtle);box-sizing:border-box;vertical-align:middle;align-items:center;gap:8px;padding:0 10px;display:inline-flex}.toolbar-field:focus-within{border-color:var(--blue)}.toolbar-field--search{flex:0 340px;max-width:480px}.toolbar-field svg{color:var(--text-muted);flex:none}.toolbar-field input,.toolbar-field select{width:100%;min-width:0;color:var(--text-main);background:0 0;border:0;outline:0;padding:0;font-size:14px}.field{gap:6px;display:grid}.field span{color:var(--text-subtle);font-size:13px}.field>input,.field>select,.mini-table input,.mini-table select{width:100%;min-height:var(--control-height);border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);color:var(--text-main);box-sizing:border-box;vertical-align:middle;outline:0;padding:0 10px;font-size:14px}.field>input:focus,.field>select:focus,.mini-table input:focus,.mini-table select:focus{border-color:var(--blue)}.field>textarea{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);width:100%;min-height:92px;color:var(--text-main);resize:vertical;box-sizing:border-box;outline:0;padding:10px;font-size:14px}.field>textarea:focus{border-color:var(--blue)}.field--compact{gap:4px}.field--full{grid-column:1/-1}.form-grid{gap:12px;display:grid}.form-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.history-range-picker .ant-picker-input>input{height:auto!important;min-height:0!important;box-shadow:none!important;background:0 0!important;border:0!important}@media (width<=640px){.history-range-picker{min-height:44px}.history-range-popup.ant-picker-dropdown{width:calc(100vw - 16px);max-width:calc(100vw - 16px);position:fixed;top:50%!important;left:8px!important;right:auto!important;inset-inline-start:8px!important;transform:translateY(-50%)!important}.history-range-popup.ant-picker-dropdown .ant-picker-panel-container{width:100%;max-width:100%;max-height:72dvh;overflow:auto}.history-range-popup.ant-picker-dropdown .ant-picker-panel-layout,.history-range-popup.ant-picker-dropdown .ant-picker-panels,.history-range-popup.ant-picker-dropdown .ant-picker-datetime-panel{flex-direction:column;max-width:100%}.history-range-popup.ant-picker-dropdown .ant-picker-panel-container .ant-picker-presets{border-inline-end:0;border-bottom:1px solid var(--border);flex:none;width:auto;min-width:0;max-width:none}.history-range-popup.ant-picker-dropdown .ant-picker-panel-container .ant-picker-presets ul{border-inline-end:0;flex-wrap:wrap;flex:none;gap:4px;height:auto;display:flex;overflow:visible}.history-range-popup.ant-picker-dropdown .ant-picker-panel-container .ant-picker-presets li{align-items:center;min-height:44px;display:flex}.history-range-popup .ant-picker-date-panel,.history-range-popup .ant-picker-time-panel{width:100%}.history-range-popup .ant-picker-footer{background:var(--panel);position:sticky;bottom:0}}.sidebar.ant-layout-sider{background:var(--sidebar);border-right:1px solid #ffffff14;align-self:flex-start;height:100vh;max-height:100vh;position:sticky;top:0;overflow:hidden}.sidebar .ant-layout-sider-children,.sidebar-content{flex-direction:column;height:100vh;min-height:0;display:flex}.brand-stack{align-items:center;gap:12px;min-height:72px;padding:16px 18px;display:flex}.brand-mark{border-radius:var(--radius);background:var(--blue);color:#fff;flex:none;place-items:center;width:34px;height:34px;font-weight:700;display:grid}.brand-mark--large{width:46px;height:46px;font-size:20px}.brand-copy{min-width:0;display:grid}.brand-copy strong{color:#fff;text-overflow:ellipsis;white-space:nowrap;font-size:16px;overflow:hidden}.sidebar-menu.ant-menu-dark{background:0 0;flex:1;min-height:0;padding:6px 10px;overflow:auto}.sidebar-menu.ant-menu-dark .ant-menu-item{border-radius:var(--radius);height:42px;margin:4px 0}.sidebar-menu.ant-menu-dark .ant-menu-item-selected{background:var(--blue)}.sidebar-foot{border-top:1px solid #ffffff14;gap:12px;padding:16px;display:grid}.identity-card{border-radius:var(--radius);color:#fff;background:#ffffff0a;border:1px solid #ffffff1f;gap:8px;padding:12px;display:grid}.identity-card strong{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.identity-role{border-radius:var(--radius);color:#d6e8ff;background:#1677ff2e;width:fit-content;padding:2px 8px;font-size:12px}.sidebar-logout.ant-btn{color:#ffffffdb;background:0 0;border-color:#ffffff29}.app-shell--collapsed .brand-copy,.app-shell--collapsed .identity-card div,.app-shell--collapsed .identity-role,.app-shell--collapsed .sidebar-logout span{display:none}.shell-main.ant-layout{background:var(--bg);min-width:0}.shell-header.ant-layout-header{z-index:10;border-bottom:1px solid var(--border);background:var(--panel);justify-content:space-between;align-items:center;gap:18px;height:auto;min-height:72px;padding:14px 24px;line-height:1.5;display:flex;position:sticky;top:0}.shell-title{gap:3px;min-width:0;display:grid}.shell-title h1{color:var(--text-main);font-size:22px;line-height:1.25}.shell-title p,.shell-time{color:var(--text-subtle);font-size:13px}.shell-actions{flex:none;align-items:center;gap:8px;display:flex}.page-body.ant-layout-content,.page-body{background:var(--bg);flex-direction:column;gap:16px;min-width:0;padding:18px 24px 24px;display:flex}.workspace-grid{grid-template-columns:minmax(0,1.16fr) minmax(360px,.84fr);gap:16px;min-height:calc(100vh - 260px);display:grid}.admin-grid{grid-template-columns:minmax(320px,.9fr) minmax(0,1.2fr);gap:16px;display:grid}.summary-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.summary-strip--wide{grid-template-columns:repeat(6,minmax(0,1fr))}.panel{border:1px solid var(--border);border-radius:var(--radius-card,6px);background:var(--panel);box-shadow:var(--shadow);flex-direction:column;display:flex;overflow:hidden}.fill-panel{min-height:calc(100vh - 260px)}.section-block{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);flex-direction:column;gap:14px;padding:14px;display:flex}.section-block--fill{min-height:440px}.panel-head,.detail-panel__header,.section-block__head,.inspector-header,.data-block__head,.list-item__head,.message-row__head,.message-row__title,.message-row__meta,.panel-head__meta,.offline-strip__head,.screen-ranking__head{justify-content:space-between;align-items:center;gap:12px;display:flex}.panel-head,.detail-panel__header{border-bottom:1px solid var(--border-soft);padding:14px 16px}.panel-head h2,.detail-panel__header h2,.inspector-header h3{font-size:18px;line-height:1.35}.device-table-wrap,.detail-scroll,.message-list,.inspector-panel{min-height:0;overflow:auto}.panel-form,.panel-body,.list-stack,.detail-scroll{padding:16px}.stack-column,.panel-form,.panel-body,.list-stack,.detail-scroll,.screen-side-panel,.screen-ranking,.data-block{flex-direction:column;gap:14px;display:flex}.panel-empty,.empty-state{color:var(--text-subtle);align-items:center;gap:12px;padding:22px;display:flex}.empty-state strong,.panel-empty strong{color:var(--text-main)}.empty-state--compact,.panel-empty--dense{padding:10px 0}.status-pill{border-radius:var(--radius);min-width:56px;min-height:22px;font-size:11px;font-weight:500;font-family:var(--font-mono);white-space:nowrap;letter-spacing:.02em;border:1px solid #0000;justify-content:center;align-items:center;padding:0 8px;display:inline-flex}@keyframes status-pulse-green{0%{transform:scale(.9);box-shadow:0 0 #10b981b3}70%{transform:scale(1);box-shadow:0 0 0 5px #10b98100}to{transform:scale(.9);box-shadow:0 0 #10b98100}}@keyframes status-pulse-red{0%{transform:scale(.9);box-shadow:0 0 #ef4444b3}70%{transform:scale(1);box-shadow:0 0 0 5px #ef444400}to{transform:scale(.9);box-shadow:0 0 #ef444400}}.status-pill--online,.status-pill--success{border-color:var(--green-border);background:var(--green-bg);color:var(--green-ink)}.status-pill--online:before,.status-pill--success:before{content:"";background:var(--green);border-radius:50%;width:6px;height:6px;margin-right:6px;animation:2s ease-out infinite status-pulse-green;display:inline-block}.status-pill--offline,.status-pill--failed,.status-pill--critical{border-color:var(--red-border);background:var(--red-bg);color:var(--red-ink)}.status-pill--critical:before{content:"";background:var(--red);border-radius:50%;width:6px;height:6px;margin-right:6px;animation:2s ease-out infinite status-pulse-red;display:inline-block}.status-pill--offline:before,.status-pill--failed:before{content:"";background:var(--text-muted);border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.status-pill--warning{border-color:var(--orange-border);background:var(--orange-bg);color:var(--orange-ink)}.status-pill--warning:before{content:"";background:var(--orange);border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.status-pill--neutral{border-color:var(--border);background:var(--panel-strong);color:var(--text-subtle)}.sub-inline,.list-item__meta,.message-row__meta{color:var(--text-muted);flex-wrap:wrap;gap:10px;font-size:13px;display:flex}.subtle-text{color:var(--text-muted);font-size:13px}.device-cell{flex-direction:column;gap:3px;min-width:0;line-height:1.4;display:flex}.device-cell strong{color:var(--text-main);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;line-height:1.4;display:block;overflow:hidden}.device-cell .device-cell-sub,.device-cell>span:not(.device-cell-primary *){color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;line-height:1.35;display:block;overflow:hidden}.device-cell .mono{font-family:var(--font-mono,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace)}.device-cell-primary{align-items:center;gap:6px;min-width:0;display:flex}.device-cell-primary strong{white-space:nowrap;text-overflow:ellipsis;display:inline;overflow:hidden}.device-cell-primary>span{flex-shrink:0;align-items:center;display:inline-flex}.device-cell .icon-button{width:22px;min-width:22px;height:22px;min-height:22px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;padding:0;transition:all .15s;display:inline-flex}.device-cell .icon-button:hover{background:var(--blue-soft);color:var(--blue);border-color:#1677ff33}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.history-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.metric-cell,.signal-chip,.screen-inline-metric{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-soft);gap:5px;padding:12px;display:grid}.metric-cell span,.signal-chip span,.screen-inline-metric span,.screen-inline-metric small{color:var(--text-muted);font-size:12px}.metric-cell span{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;font-size:11px;font-weight:600}.metric-cell strong,.screen-inline-metric strong{color:var(--text-main);font-family:var(--font-mono);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:22px;font-weight:700;line-height:1.15}.signal-strip,.tag-list,.rule-form-actions,.screen-toolbar__actions,.screen-toolbar__inline{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tag{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-soft);color:var(--text-subtle);align-items:center;gap:4px;padding:2px 8px;font-size:12px;display:inline-flex}.message-device-limit{min-width:0;max-width:100%}.message-device-limit__value{white-space:normal;overflow-wrap:anywhere;word-break:break-word;min-width:0;max-width:100%}.message-workbench{grid-template-columns:minmax(0,.92fr) minmax(340px,.86fr);gap:14px;min-height:430px;padding:14px;display:grid}.inbound-messages-panel .message-workbench{grid-template-rows:minmax(0,1fr);height:clamp(430px,58dvh,720px)}.message-list{flex-direction:column;gap:8px;display:flex}.message-row,.list-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);width:100%;color:var(--text-main);text-align:left;flex-direction:column;gap:9px;padding:12px;display:flex}.message-row:hover,.list-item:hover,.message-row.is-active,.list-item.is-selected{border-color:var(--blue);background:var(--blue-soft)}.message-row__title{justify-content:flex-start;min-width:0;font-weight:600}.message-row__payload{color:var(--text-subtle);white-space:pre-wrap;word-break:break-word;font-size:13px}.inspector-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);flex-direction:column;gap:14px;padding:14px;display:flex}.code-view{border-radius:var(--radius);color:#e6f4ff;white-space:pre-wrap;word-break:break-word;background:#101820;border:1px solid #26384f;max-height:420px;margin:0;padding:12px;font-size:13px;line-height:1.6;overflow:auto}.realtime-indicator{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-soft);min-height:24px;color:var(--text-subtle);align-items:center;padding:0 8px;font-size:12px;display:inline-flex}.realtime-indicator--open{color:var(--green);background:#f6ffed;border-color:#b7ebc6}.realtime-indicator--connecting,.realtime-indicator--closed{color:var(--orange);background:#fff7e6;border-color:#ffd591}.realtime-indicator--error{color:var(--red);background:#fff1f0;border-color:#ffccc7}.error-banner,.inline-error,.error-inline,.success-inline{align-items:center;gap:8px;display:inline-flex}.error-banner{border-radius:var(--radius);width:100%;color:var(--red);background:#fff1f0;border:1px solid #ffccc7;padding:10px 12px}.inline-error,.error-inline{color:var(--red)}.success-inline{color:var(--green)}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.detail-grid>div{flex-direction:column;gap:2px;display:flex}.detail-label{color:var(--text-muted);font-size:12px}.drawer-actions{justify-content:flex-end;align-items:center;gap:8px;padding:8px 0 0;display:flex}.login-screen{background:linear-gradient(90deg, #142033fa 0, #142033fa 420px, transparent 420px), var(--bg);grid-template-columns:minmax(300px,420px) minmax(0,1fr);min-height:100vh;display:grid}.login-aside{color:#fff;flex-direction:column;justify-content:space-between;min-height:100vh;padding:36px;display:flex}.login-brand{align-items:center;gap:14px;display:flex}.login-brand h1{font-size:26px}.login-aside__copy{color:#ffffffb8;gap:8px;display:grid}.login-aside__copy strong{color:#fff;font-size:20px}.login-main{place-items:center;min-height:100vh;padding:40px 24px;display:grid}.login-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);width:min(100%,520px);box-shadow:var(--shadow);gap:22px;padding:28px;display:grid}.login-copy{gap:8px;display:grid}.login-copy h2{font-size:24px}.login-copy p{color:var(--text-subtle)}.account-presets{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.account-preset{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-soft);min-height:88px;color:var(--text-main);text-align:left;gap:2px;padding:10px;display:grid}.account-preset small,.hint-row{color:var(--text-muted);font-size:12px}.account-preset.is-active{border-color:var(--blue);background:var(--blue-soft)}.login-form{gap:14px;display:grid}.login-options{color:var(--text-muted);justify-content:space-between;align-items:center;gap:12px;font-size:13px;display:flex}.login-captcha{grid-template-columns:minmax(0,1fr) 160px;gap:4px 10px;display:grid}.login-captcha .ant-input-affix-wrapper{min-width:0;min-height:48px}.captcha-image-button{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-soft);height:48px;color:var(--blue);place-items:center;padding:0;display:grid;overflow:hidden}.captcha-image-button img{object-fit:contain;width:100%;height:100%;display:block}.captcha-refresh-hint{color:var(--text-muted);text-align:center;grid-column:2;font-size:12px;line-height:1.4}.login-hint{border-top:1px solid var(--border-soft);padding-top:14px}.activation-panel{max-width:520px}.activation-success{color:var(--green);gap:14px;display:grid}.activation-success>div{gap:4px;display:grid}.activation-success strong{color:var(--text-main);font-size:20px}.activation-success p{color:var(--text-subtle)}.app-shell.ant-layout{background:var(--bg);min-height:100vh}.dashboard-page{flex-direction:column;gap:16px;min-width:0;display:flex}.dashboard-filters-panel{padding:12px 16px}.dashboard-status-banner{border:1px solid var(--border);border-radius:var(--radius-card,6px);background:var(--panel);box-shadow:var(--shadow);justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.dashboard-status-banner .status-meta{justify-content:space-between;align-items:center;gap:12px;width:100%;font-size:13px;display:flex}.dashboard-status-banner .status-meta span{align-items:center;gap:8px;display:inline-flex}.dashboard-status-banner .status-meta small{color:var(--text-muted);font-family:var(--font-mono);font-size:12px}.dashboard-admin-grid{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:stretch}.dashboard-products-panel{border-radius:var(--radius-card,6px);flex-direction:column;min-height:100%;display:flex}.dashboard-products-panel .device-table-wrap{flex:auto;max-height:520px;overflow-y:auto}.dashboard-products-panel .dashboard-products-toggle{display:none}.summary-card{border:1px solid var(--border);border-radius:var(--radius-card,6px);background:var(--panel);min-height:104px;box-shadow:var(--shadow);gap:6px;padding:16px;transition:transform .15s,box-shadow .15s,border-color .15s;display:grid}.summary-card:hover{box-shadow:var(--shadow-md);border-color:#cbd5e1;transform:translateY(-1px)}.summary-card .eyebrow{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:600}.summary-card strong{color:var(--text-main);font-family:var(--font-mono);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:28px;font-weight:600;line-height:1.15}.summary-card strong.is-online{color:var(--green)}.summary-card strong.is-critical{color:var(--red)}.summary-card strong.is-warning{color:var(--orange)}.summary-card p,.metric-cell__sub{color:var(--text-muted);font-size:12px}.product-model-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;padding:14px;display:grid}.product-model-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-soft);min-width:0;color:var(--text-main);text-align:left;cursor:pointer;outline:0;gap:6px;padding:13px;transition:border-color .2s,background-color .2s;display:grid}.product-model-card:hover,.product-model-card.is-active{border-color:var(--blue);background:var(--blue-soft)}.product-model-card strong{text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.product-model-card>span:not(.eyebrow),.product-model-card small{color:var(--text-muted);font-size:12px}.chart-panel,.screen-chart{min-height:300px}.screen-toolbar{justify-content:space-between;align-items:center;gap:14px;padding:0 2px 2px;display:flex}.screen-toolbar__group{align-items:center;gap:8px;display:flex}.screen-toolbar__time{color:var(--text-muted);font-size:13px}.screen-kpi-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;display:grid}.screen-kpi-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);min-height:150px;box-shadow:var(--shadow);gap:10px;padding:14px;display:grid}.screen-kpi-card strong{margin-top:6px;font-size:30px;line-height:1;display:block}.screen-kpi-card p{color:var(--text-muted);font-size:13px}.screen-kpi-card__head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.screen-kpi-card__icon{border:1px solid var(--border);border-radius:var(--radius);width:34px;height:34px;color:var(--blue);background:var(--blue-soft);place-items:center;display:grid}.screen-kpi-card__chart{min-height:48px}.monitor-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:14px;display:grid}.monitor-panel--span-3{grid-column:span 3}.monitor-panel--span-4{grid-column:span 4}.monitor-panel--span-5{grid-column:span 5}.monitor-panel--span-6{grid-column:span 6}.monitor-panel--span-8{grid-column:span 8}.screen-metric-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.screen-protocol-bars{gap:12px;display:grid}.screen-protocol-row{border:1px solid var(--border-soft);border-radius:var(--radius);background:var(--panel-soft);gap:7px;padding:10px;display:grid}.screen-protocol-row__head,.screen-protocol-row__meta{justify-content:space-between;align-items:center;gap:10px;display:flex}.screen-protocol-row__head strong{min-width:0;color:var(--text-main);font-size:14px}.screen-protocol-row__head span,.screen-protocol-row__meta{color:var(--text-subtle);font-size:12px}.screen-protocol-row__track{background:#e7edf5;border-radius:999px;height:8px;overflow:hidden}.screen-protocol-row__fill{border-radius:inherit;background:linear-gradient(90deg, var(--blue), #13b7d8);height:100%}.screen-ranking__row{border:1px solid var(--border-soft);border-radius:var(--radius);background:var(--panel-soft);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:9px 10px;display:grid}.screen-ranking__row span,.screen-ranking__row small{color:var(--text-subtle);font-size:13px}.monitor-table th,.monitor-table td{white-space:nowrap}.device-filter-panel{flex-direction:column;gap:0;padding:0;display:flex}.device-filter-panel .filter-bar{flex-wrap:wrap;align-items:center;gap:10px;padding:14px 16px;display:flex}.device-filter-panel .toolbar-field{min-width:0}.device-filter-panel .toolbar-field--search{flex:220px;min-width:180px;max-width:380px}.device-filter-panel .toolbar-field:not(.toolbar-field--search){flex:0 130px;width:auto;min-width:100px}.device-filter-panel .device-refresh-button{flex:none;margin-left:auto}.device-overview-main{flex-direction:column;flex:auto;gap:16px;min-width:0;transition:margin-right .2s;display:flex}.device-overview-main.is-split-detail{margin-right:516px}.device-status-tabs{border-top:1px solid var(--border-soft);border-bottom:1px solid var(--border);background:var(--panel-soft);align-items:center;gap:24px;min-height:38px;padding:0 12px;display:flex}.device-status-tabs button{box-sizing:border-box;height:36px;color:var(--text-subtle);background:0 0;border:0;padding:0 2px;font-size:14px;line-height:36px;position:relative}.device-status-tabs button:after{content:"";background:0 0;height:2px;position:absolute;bottom:-1px;left:0;right:0}.device-status-tabs button span{color:var(--text-muted);margin-left:5px}.device-status-tabs button:hover,.device-status-tabs button.is-active,.device-status-tabs button.is-active span{color:var(--blue)}.device-status-tabs button.is-active:after{background:var(--blue)}.device-list-panel{min-height:0}.device-list-panel .device-table-wrap{flex:0 auto;overflow:auto}.device-overview-table{min-width:740px}.device-overview-table th:first-child{width:28%}.device-overview-table th:nth-child(2){width:26%}.device-overview-table th:nth-child(3){width:14%}.device-overview-table th:nth-child(4),.device-overview-table th:nth-child(5){width:16%}.device-table,.mini-table{border-collapse:collapse;background:var(--panel);width:100%}.device-detail-content .drawer-table-scroll{min-width:0;overflow-x:auto}.device-detail-content .drawer-table-scroll details{min-width:240px}.device-table thead th,.mini-table th{z-index:1;border-bottom:1px solid var(--border);background:var(--panel-strong);color:var(--text-muted);font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;text-align:left;white-space:nowrap;padding:10px 14px;font-size:11px;font-weight:600;position:sticky;top:0}.device-table tbody td,.mini-table td{border-top:1px solid var(--border-soft);color:var(--text-main);vertical-align:middle;padding:11px 14px}.device-table tbody tr{cursor:pointer}.device-table tbody tr:hover,.mini-table tbody tr:hover{background:#f8fbff}.device-table tbody tr.is-active{background:var(--blue-soft);box-shadow:inset 3px 0 0 var(--blue)}.device-table tbody tr:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}.device-pagination{border-top:1px solid var(--border);color:var(--text-muted);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;font-size:13px;display:flex}.device-pagination>div{align-items:center;gap:8px;display:flex}.device-pagination__controls{align-items:center;gap:6px;margin-left:auto;display:flex}.device-page-button{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);min-width:30px;min-height:30px;color:var(--text-subtle);justify-content:center;align-items:center;padding:0 7px;display:inline-flex}.device-page-button:hover,.device-page-button.is-active{border-color:var(--blue);color:var(--blue)}.device-page-button.is-active{background:var(--blue);color:#fff}.device-page-button:disabled{border-color:var(--border-soft);color:var(--text-muted);background:var(--panel-soft)}.device-page-ellipsis{text-align:center;min-width:22px}.device-detail-drawer .device-detail-section{background:var(--panel);border-left:1px solid var(--border);box-shadow:-4px 0 24px #0f172a14}.device-detail-drawer .ant-drawer-body{min-height:0;overflow:hidden}.device-detail-content,.device-detail-state{background:var(--panel);flex-direction:column;min-width:0;height:100%;display:flex}.device-drawer-head,.device-drawer-state-head{border-bottom:1px solid var(--border-soft);justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 24px 16px;display:flex}.device-drawer-state-head{align-items:center}.device-drawer-title{gap:6px;min-width:0;display:grid}.device-drawer-title__row,.device-drawer-actions{align-items:center;gap:10px;display:flex}.device-drawer-title h2{text-overflow:ellipsis;white-space:nowrap;font-size:21px;line-height:1.35;overflow:hidden}.device-drawer-title>span{color:var(--text-subtle);font-size:13px}.device-readonly{color:var(--blue);white-space:nowrap;font-size:13px}.device-drawer-summary{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-soft);grid-template-columns:repeat(3,minmax(0,1fr));margin:16px 24px 12px;display:grid}.device-drawer-summary>div{gap:5px;min-width:0;padding:14px;display:grid}.device-drawer-summary>div+div{border-left:1px solid var(--border)}.device-drawer-summary span{color:var(--text-muted);font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;overflow:hidden}.device-drawer-summary small{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.device-drawer-summary strong{color:var(--text-main);font-family:var(--font-mono);letter-spacing:-.02em;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;font-size:20px;font-weight:700;line-height:1.2;overflow:hidden}.device-drawer-summary strong.is-healthy{color:var(--green)}.device-drawer-summary strong.is-warning{color:var(--orange)}.device-detail-tabs{border-bottom:1px solid var(--border);scrollbar-width:none;flex:none;align-items:stretch;gap:24px;min-height:46px;padding:0 24px;display:flex;overflow-x:auto}.device-detail-tabs::-webkit-scrollbar{display:none}.device-detail-tabs button{color:var(--text-subtle);white-space:nowrap;background:0 0;border:0;flex:none;padding:0;font-size:14px;position:relative}.device-detail-tabs button:after{content:"";background:0 0;height:2px;position:absolute;bottom:0;left:0;right:0}.device-detail-tabs button:hover,.device-detail-tabs button.is-active{color:var(--blue)}.device-detail-tabs button.is-active:after{background:var(--blue)}.device-drawer-scroll{flex:auto;min-height:0;padding:0 24px 24px;overflow:auto}.device-overview-sections{flex-direction:column;display:flex}.device-overview-section{padding:20px 0}.device-overview-section+.device-overview-section{border-top:1px solid var(--border-soft)}.device-overview-section h3,.device-history-section .section-block__head h3{margin-bottom:14px;font-size:15px}.device-fact-list{gap:12px;margin:0;display:grid}.device-fact-list>div{grid-template-columns:124px minmax(0,1fr);align-items:start;gap:12px;display:grid}.device-fact-list dt{color:var(--text-muted);font-size:13px}.device-fact-list dd{overflow-wrap:anywhere;min-width:0;color:var(--text-main);margin:0;font-size:13px}.device-fact-list .device-alias-display,.device-fact-list .device-alias-editor{align-items:flex-start}.device-history-section .history-head{flex-direction:column;align-items:stretch;gap:12px;display:flex}.device-history-section .history-head__title{justify-content:space-between;align-items:center;gap:12px;display:flex}.device-history-section .history-head h3{margin:0;font-size:15px;font-weight:600}.device-history-section .history-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.device-history-section .history-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.device-history-chart{border:1px solid var(--border-soft);box-shadow:none;margin-top:14px}.offline-strip{background:var(--panel-soft);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:8px;margin-top:14px;padding:12px 14px;display:flex}.offline-strip__head{color:var(--text-muted);justify-content:space-between;align-items:center;gap:12px;font-size:12px;display:flex}.offline-list{flex-direction:column;gap:6px;display:flex}.offline-item{border-bottom:1px dashed var(--border-soft);justify-content:space-between;align-items:center;gap:12px;padding:4px 0;font-size:12px;display:flex}.offline-item:last-child{border-bottom:none}.offline-item strong{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--text-main);font-weight:600}.offline-item span{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--text-muted)}.device-drawer-workbench .message-workbench{grid-template-columns:1fr;min-height:0;padding:12px 0 0}.device-drawer-workbench .message-list,.device-drawer-workbench .inspector-panel{max-height:none}.device-breadcrumb,.device-alias-display,.device-alias-editor{align-items:center;gap:8px;display:flex}.device-breadcrumb{color:var(--text-muted);flex-wrap:wrap;margin-top:4px;font-size:12px}.device-alias-display{justify-content:space-between}.device-alias-editor input{min-width:0;height:var(--control-height);min-height:var(--control-height);border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);color:var(--text-main);box-sizing:border-box;outline:0;flex:auto;padding:0 10px}.field-error{color:var(--red);font-size:12px}.device-drawer-scroll.device-drawer-scroll--parameters{padding-bottom:0;display:flex;overflow:hidden}.parameter-config{overflow-wrap:anywhere;flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.parameter-config__scroll{scrollbar-gutter:stable;min-height:0;padding:16px 0;overflow-y:auto}.parameter-config__actions{border-top:1px solid var(--border-soft);background:var(--panel);flex:none;padding:12px 0}.parameter-config__actions p{margin:0 0 8px}.parameter-config__submit{justify-content:space-between;align-items:center;gap:12px;display:flex}.parameter-disclosure{border-top:1px solid var(--border-soft);padding-top:8px}.parameter-disclosure summary{cursor:pointer;align-content:center;min-height:44px;font-weight:600}.parameter-config .form-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}.parameter-field,.parameter-command{border:1px solid var(--border-soft);border-radius:var(--radius);background:var(--panel-soft);min-width:0;padding:12px}.parameter-field p,.parameter-command p{margin:8px 0}.parameter-select{cursor:pointer;align-items:center;gap:8px;min-height:44px;display:flex}.parameter-select input{width:auto}.parameter-command{margin:12px 0}@media (width<=640px){body:has(.device-drawer-scroll--parameters){overflow:hidden}.parameter-config__scroll{gap:12px}.parameter-field{padding:8px 12px}.parameter-field p{margin:4px 0;font-size:12px}.parameter-config__submit .primary-button{min-height:44px}.parameter-config__submit>span{white-space:nowrap;flex:none}}.debug-console{gap:12px;min-width:0;display:grid}.debug-workspace-tabs{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.debug-session-creator{overflow:hidden}.debug-session-creator__form{padding:0}.debug-session-creator__actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.debug-workbench-grid{grid-template-rows:minmax(620px,calc(100vh - 265px)) auto;grid-template-columns:minmax(220px,.68fr) minmax(440px,1.5fr) minmax(300px,.9fr);align-items:stretch;gap:12px;min-width:0;display:grid}.debug-session-pane,.debug-stream-pane,.debug-inspector-pane{min-height:0;overflow:hidden}.debug-session-pane{grid-area:1/1}.debug-stream-pane{grid-area:1/2}.debug-inspector-pane{grid-area:1/3}.debug-session-tools{border-bottom:1px solid var(--border-soft);gap:8px;padding:12px;display:grid}.debug-session-tools input,.debug-stream-toolbar__tools input,.debug-stream-toolbar__tools select{width:100%;min-width:0;height:var(--control-height);min-height:var(--control-height);border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);color:var(--text-main);box-sizing:border-box;outline:0;padding:0 10px}.debug-session-list{flex-direction:column;flex:1;gap:8px;min-height:0;padding:12px;display:flex;overflow:auto}.debug-session-group{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;padding:6px 2px 2px;font-size:11px;font-weight:600}.debug-session-pane .list-item{gap:7px;padding:10px}.debug-session-pane .list-item__head strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.debug-stream-toolbar{border-bottom:1px solid var(--border-soft);background:var(--panel-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.debug-protocol-filters{flex:0 auto}.debug-protocol-filters button{min-height:30px;padding:0 9px}.debug-stream-toolbar__tools{grid-template-columns:116px minmax(160px, 1fr) var(--control-height) var(--control-height);align-items:center;gap:6px;min-width:min(100%,410px);display:grid}.debug-stream-table{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow-x:hidden}.debug-stream-table__head,.debug-stream-row{grid-template-columns:64px minmax(74px,.75fr) minmax(84px,1fr) minmax(96px,1.35fr) 52px;align-items:center;gap:8px;min-width:0;display:grid}.debug-stream-table__head{z-index:1;border-bottom:1px solid var(--border);background:var(--panel-strong);color:var(--text-muted);padding:8px 12px;font-size:11px;font-weight:600;position:sticky;top:0}.debug-stream-table__body{flex:1;min-width:0;min-height:0;overflow-y:auto}.debug-stream-table__body>.panel-empty{height:100%}.debug-stream-pagination-hint{background:var(--panel-soft);color:var(--text-muted);border-top:1px dashed var(--border-soft);justify-content:space-between;align-items:center;padding:8px 12px;font-size:12px;display:flex}.debug-stream-row{border:0;border-bottom:1px solid var(--border-soft);background:var(--panel);width:100%;color:var(--text-main);text-align:left;padding:10px 12px;font-size:12px}.debug-stream-row:hover,.debug-stream-row.is-active{background:var(--blue-soft)}.debug-stream-row.is-active{box-shadow:inset 3px 0 0 var(--blue)}.debug-stream-row.is-error:not(:hover):not(.is-active){background:#fff7f5}.debug-stream-row>span,.debug-stream-row>strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.debug-stream-direction-protocol{gap:6px;min-width:0;display:flex;overflow:hidden}.debug-stream-direction-protocol>strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.debug-direction,.debug-protocol,.debug-stream-status{font-size:11px}.debug-direction--in,.debug-stream-status--success{color:var(--green)}.debug-direction--out,.debug-protocol--mqtt,.debug-protocol--http{color:var(--blue)}.debug-direction--system,.debug-stream-status--raw,.debug-stream-status--system{color:var(--orange)}.debug-stream-status--failed{color:var(--red)}.debug-protocol--tcp{color:#722ed1}.debug-protocol--udp{color:#08979c}.debug-inspector-tabs{border-bottom:1px solid var(--border-soft);min-height:38px;padding:0 10px;display:flex;overflow-x:auto}.debug-inspector-tabs button{color:var(--text-subtle);background:0 0;border:0;border-bottom:2px solid #0000;flex:none;padding:0 9px;font-size:12px}.debug-inspector-tabs button.is-active{border-bottom-color:var(--blue);color:var(--blue);font-weight:600}.debug-inspector-body{flex-direction:column;flex:1;gap:12px;min-height:0;padding:12px;display:flex;overflow:auto}.debug-link-section{border:1px solid var(--border-soft);border-radius:var(--radius);background:var(--panel-soft);gap:8px;padding:11px;display:grid}.debug-link-section h3{font-size:13px}.debug-link-grid{grid-template-columns:78px minmax(0,1fr);align-items:baseline;gap:7px 10px;font-size:12px;display:grid}.debug-link-grid>span{color:var(--text-muted)}.debug-link-grid>strong,.debug-link-grid>code{overflow-wrap:anywhere;min-width:0}.debug-inspector-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.debug-inspector-actions .ghost-button{height:30px;min-height:30px;padding:0 9px}.receiver-sensor-summary{gap:8px;display:grid}.receiver-sensor-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.receiver-sensor-card{border-radius:var(--radius);background:linear-gradient(145deg, var(--panel), #f3f7fd);border:1px solid #d8e7fb;gap:5px;min-width:0;padding:12px;display:grid;overflow:hidden}.receiver-sensor-card__value{overflow-wrap:anywhere;min-width:0;color:var(--text);align-items:baseline;gap:4px;font-size:22px;line-height:1.15;display:flex}.receiver-sensor-card__value small,.receiver-sensor-card__detail{color:var(--text-subtle);font-size:11px}.receiver-toolbar{border-bottom:1px solid var(--border-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;display:flex}.receiver-toolbar__actions{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.receiver-workbench{min-height:520px}.receiver-list,.receiver-inspector{max-height:620px}.receiver-diagnostics{gap:10px;display:grid}.receiver-diagnostic{border:1px solid var(--border-soft);border-radius:var(--radius);background:var(--panel-soft);grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;padding:10px 12px;display:grid}.receiver-diagnostic strong,.receiver-diagnostic p{margin:0}.receiver-diagnostic p{color:var(--text-subtle);margin-top:4px}.debug-composer{grid-area:2/1/auto/-1;grid-template-columns:220px minmax(0,1fr);gap:14px;padding:14px;display:grid}.debug-composer__title,.debug-composer__title>div{flex-direction:column;gap:4px;display:flex}.debug-composer__title{justify-content:space-between}.debug-composer__form{grid-template-columns:minmax(180px,.8fr) 110px minmax(280px,1.4fr) 92px;align-items:end;gap:10px;display:grid}.debug-composer__payload textarea{min-height:78px}.debug-composer__mqtt{gap:10px;display:grid}.debug-composer__subscription{grid-template-columns:minmax(180px,1fr) auto;align-items:end;gap:8px;display:grid}.debug-command-workspace{min-height:calc(100vh - 190px)}.debug-command-grid{grid-template-columns:minmax(320px,.72fr) minmax(0,1.28fr);gap:14px;min-height:0;padding:14px;display:grid}.debug-command-records{border:1px solid var(--border);min-width:0;overflow:auto}.product-page-workbench{grid-template-columns:246px minmax(0,1fr);gap:12px;min-height:calc(100vh - 146px);display:grid}.product-page-workbench>.error-banner{grid-column:1/-1}.product-selector{flex-direction:column;gap:14px;min-height:0;padding:16px;display:flex}.selector-count{background:var(--blue-soft);min-width:28px;min-height:28px;color:var(--blue);border-radius:14px;place-items:center;font-size:13px;font-weight:700;display:inline-grid}.product-selector__list{gap:8px;min-height:0;display:grid;overflow:auto}.product-selector__search{flex:0 0 36px;width:100%;max-width:100%;height:36px;min-height:36px;max-height:36px;margin-bottom:-4px}.product-selector__item{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);color:inherit;text-align:left;gap:10px;padding:12px;transition:all .15s;display:grid}.product-selector__item>div:first-child{gap:3px;display:grid}.product-selector__item>div:first-child strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.product-selector__item>div:first-child span{color:var(--text-muted);font-family:var(--font-mono);font-size:11px}.product-selector__item:hover{background:var(--panel-strong);border-color:#cbd5e1}.product-selector__item.is-selected{border-color:var(--blue);border-left:3px solid var(--blue);background:var(--blue-soft)}.product-selector__create{border-top:1px solid var(--border-soft);gap:10px;padding-top:14px;display:grid}.product-page-workbench__main{min-width:0}.product-page-workbench__actions{justify-content:flex-end;align-items:center;gap:10px;margin-bottom:12px;display:flex}.workspace-form .form-grid--2{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.product-page-workbench__actions .product-mobile-selector-button{margin-bottom:0}.product-mobile-selector-button{display:none}.product-protocol-workspace{gap:14px;display:grid}.product-workspace-head{justify-content:space-between;align-items:flex-start;gap:20px;padding:2px 2px 0;display:flex}.product-workspace-head>div:first-child{gap:2px;display:grid}.product-workspace-head h2{font-size:22px}.product-workspace-head p{color:var(--text-muted);font-size:12px}.product-workspace-actions{flex:none;align-items:center;gap:8px;display:flex}.product-workspace-grid{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);min-height:620px;box-shadow:var(--shadow);grid-template-columns:152px minmax(0,1fr) 330px;display:grid;overflow:hidden}@media (width>=641px){.product-page-workbench__main{flex-direction:column;min-height:0;display:flex}.product-page-workbench__main>.fill-panel{flex:1}.product-protocol-workspace{flex-direction:column;flex:1;min-height:0;display:flex}.product-workspace-grid{flex:1}}.product-workspace-tabs{border-right:1px solid var(--border-soft);background:var(--panel-strong);flex-direction:column;gap:4px;padding:10px;display:flex}.product-workspace-tabs button{border-radius:var(--radius);color:var(--text-subtle);text-align:left;background:0 0;border:0;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px;padding:10px 8px;display:grid}.product-workspace-tabs button:hover,.product-workspace-tabs button.is-active{background:var(--panel);color:var(--blue);box-shadow:0 1px 3px #0f172a14}.product-workspace-tabs button span{font-size:13px}.product-workspace-config{min-width:0;padding:16px;overflow:auto}.workspace-form{gap:18px;display:grid}.workspace-section-head{gap:4px;display:grid}.workspace-section-head h3{font-size:18px}.workspace-section-head p,.workspace-inline-form p{color:var(--text-subtle);font-size:13px}.metric-editor-list,.mapping-list{gap:10px;display:grid}.metric-editor-card,.mapping-card{border:1px solid var(--border-soft);border-radius:var(--radius);background:var(--panel-soft);gap:12px;padding:14px;display:grid}.metric-editor-card__key,.mapping-card header,.preview-head,.preview-metric{justify-content:space-between;align-items:center;gap:12px;display:flex}.metric-editor-card__key strong,.mapping-card header strong{font-size:14px}.metric-editor-card__key span,.mapping-card header span{color:var(--text-muted);font-size:11px}.metric-editor-card__fields{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.metric-editor-card .ghost-button{justify-self:end}.workspace-inline-form{border:1px dashed var(--border);border-radius:var(--radius);grid-template-columns:minmax(130px,1.1fr) repeat(5,minmax(94px,1fr)) auto;align-items:end;gap:8px;padding:14px;display:grid}.mapping-card header>div,.preview-metric>div{gap:2px;display:grid}.mapping-card header>span{text-overflow:ellipsis;white-space:nowrap;max-width:50%;overflow:hidden}.mapping-card__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.product-workspace-preview{border-left:1px solid var(--border-soft);background:#fbfcfe;align-content:start;gap:14px;padding:20px;display:grid;overflow:auto}.sandbox-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.sandbox-head>div{min-width:0}.sandbox-head h3{color:var(--text-main);margin:3px 0 0;font-size:15px;font-weight:700;line-height:1.35}@media (width<=640px){.sandbox-head{grid-template-columns:minmax(0,1fr);display:grid}.sandbox-payload-header{flex-wrap:wrap}.sandbox-toggle-btn{flex-basis:100%}.sandbox-preset-chips{flex-wrap:wrap;width:100%}.sandbox-preset-chips .sandbox-chip{flex:auto;width:auto}}.sandbox-run-button{white-space:nowrap;flex-shrink:0;align-items:center;gap:5px;height:30px;min-height:30px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.sandbox-payload-box{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-soft);flex-direction:column;gap:8px;padding:10px 12px;display:flex}.sandbox-payload-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.sandbox-toggle-btn{color:var(--text-main);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0;font-size:13px;font-weight:600;display:inline-flex}.sandbox-preset-chips{align-items:center;gap:6px;display:flex}.sandbox-chip{background:var(--panel);border:1px solid var(--border);height:24px;min-height:24px;color:var(--text-subtle);cursor:pointer;border-radius:12px;padding:0 8px;font-size:11px;transition:all .15s}.sandbox-chip:hover{border-color:var(--blue);color:var(--blue)}.sandbox-payload-editor{box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);width:100%;color:var(--text-main);resize:vertical;padding:8px 10px;font-size:12px;line-height:1.45}.sandbox-payload-editor:focus{border-color:var(--blue);outline:0}.sandbox-pipeline{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-soft);grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;padding:10px 12px;display:grid}.pipeline-step{align-items:flex-start;gap:8px;display:flex}.pipeline-dot{background:var(--border-strong);border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:4px}.pipeline-step.is-done .pipeline-dot{background:var(--green);box-shadow:0 0 6px #16a34a66}.pipeline-step.is-warning .pipeline-dot{background:var(--orange);box-shadow:0 0 6px #ea580c66}.pipeline-step.is-error .pipeline-dot{background:var(--red);box-shadow:0 0 6px #dc262666}.pipeline-step.is-idle .pipeline-dot{background:#cbd5e1}.pipeline-label{gap:1px;display:grid}.pipeline-label strong{color:var(--text-main);white-space:nowrap;font-size:11px;font-weight:600}.pipeline-label small{color:var(--text-muted);white-space:nowrap;font-size:10px}.pipeline-arrow{color:var(--text-muted);align-items:center;display:flex}.sandbox-warnings{flex-direction:column;gap:6px;display:flex}.sandbox-warning-pill{border-radius:var(--radius);color:#b45309;background:#fffbeb;border:1px solid #fef3c7;align-items:center;gap:8px;padding:6px 10px;font-size:12px;display:flex}.sandbox-info-callout{background:var(--blue-soft);border-radius:var(--radius);color:var(--blue);border:1px solid #bfdbfe;align-items:center;gap:8px;padding:6px 10px;font-size:12px;display:flex}.summary-item--resolved strong{color:var(--green)}.summary-item--missing strong{color:var(--orange)}.summary-item--invalid strong{color:var(--red)}.sandbox-view-tabs{border-bottom:1px solid var(--border);align-items:center;gap:12px;display:flex}.sandbox-view-tab{height:34px;color:var(--text-subtle);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0 4px;font-size:13px;font-weight:500;display:inline-flex;position:relative}.sandbox-view-tab:hover,.sandbox-view-tab.is-active{color:var(--blue)}.sandbox-view-tab.is-active:after{content:"";background:var(--blue);height:2px;position:absolute;bottom:-1px;left:0;right:0}.preview-head h3{margin-top:3px;font-size:16px}.preview-summary{border:1px solid var(--border-soft);border-radius:var(--radius);grid-template-columns:repeat(3,minmax(0,1fr));display:grid;overflow:hidden}.preview-summary div{border-right:1px solid var(--border-soft);gap:2px;padding:10px;display:grid}.preview-summary div:last-child{border-right:0}.preview-summary span,.preview-meta,.preview-metric span{color:var(--text-muted);font-size:11px}.preview-summary strong{font-size:18px}.preview-meta{border-bottom:1px solid var(--border-soft);justify-content:space-between;gap:8px;padding-bottom:10px;display:flex}.preview-metrics{gap:8px;display:grid}.preview-metric{border:1px solid var(--border-soft);border-left:3px solid var(--border);border-radius:var(--radius);background:var(--panel);justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.preview-metric__main{gap:2px;display:grid}.preview-metric__main strong{color:var(--text-main);font-size:13px}.preview-metric__main span{color:var(--text-muted);font-size:11px}.metric-msg{color:var(--orange);font-size:11px}.preview-metric__value{flex-direction:column;align-items:flex-end;gap:3px;display:flex}.preview-metric__value strong{color:var(--text-main);font-variant-numeric:tabular-nums;font-size:14px}.status-tag{border-radius:4px;align-items:center;padding:1px 6px;font-size:11px;font-weight:600;display:inline-flex}.status-tag--resolved{color:#15803d;background:#dcfce7}.status-tag--missing{color:#c2410c;background:#ffedd5}.status-tag--invalid{color:#b91c1c;background:#fee2e2}.sandbox-raw-view{flex-direction:column;gap:10px;display:flex}.sandbox-json-tree,.sandbox-hex-tree{border-radius:var(--radius);background:#0f172a;max-height:320px;margin:0;padding:12px 14px;font-size:12px;line-height:1.5;overflow:auto}.sandbox-json-tree{color:#e2e8f0}.sandbox-hex-tree{color:#38bdf8;word-break:break-all}.preview-metric--resolved{border-left-color:var(--green)}.preview-metric--missing{border-left-color:var(--orange)}.preview-metric--invalid{border-left-color:var(--red)}.preview-metric>div:last-child{text-align:right}.preview-empty{min-height:260px}.workspace-mobile-tab{display:none}.product-workspace-head__info{gap:4px;display:grid}.product-workspace-head__title{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.product-workspace-head__title h2{margin:0;font-size:20px;font-weight:700}.product-key-badge{border-radius:var(--radius-sm);background:var(--panel-strong);border:1px solid var(--border-soft);color:var(--text-subtle);padding:2px 7px;font-size:11px}.protocol-format-badge{border-radius:var(--radius-sm);background:var(--blue-soft);color:var(--blue);padding:2px 7px;font-size:11px;font-weight:600}.product-workspace-head__desc{color:var(--text-muted);margin:0;font-size:12px}.thing-model-grid-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);flex-direction:column;display:flex;overflow:hidden;box-shadow:0 1px 3px #0f172a0a}.thing-model-toolbar{border-bottom:1px solid var(--border-soft);background:var(--panel-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;display:flex}.thing-model-toolbar__summary{align-items:center;gap:8px;font-size:12px;display:flex}.thing-model-count-label{color:var(--text-main);font-weight:700}.thing-model-divider{color:var(--border-strong)}.thing-model-status-pill{border-radius:12px;padding:2px 8px;font-size:11px;font-weight:600}.thing-model-toolbar__actions{align-items:center;gap:12px;display:flex}.thing-model-legend{color:var(--text-muted);align-items:center;gap:10px;font-size:11px;display:flex}.legend-dot.is-resolved{background:var(--green)}.legend-dot.is-missing{background:var(--orange)}.legend-dot.is-invalid{background:var(--red)}.add-metric-toggle-btn{gap:5px;height:28px;min-height:28px;padding:0 10px;font-size:12px;font-weight:600}.thing-model-inline-add{border-bottom:1px dashed var(--border);background:var(--panel-strong);padding:14px}.thing-model-table-wrapper{min-width:0;overflow-x:auto}.thing-model-table{border-collapse:collapse;text-align:left;width:100%;min-width:580px;font-size:12px}.thing-model-table thead{background:var(--panel-soft);border-bottom:1px solid var(--border);z-index:1;position:sticky;top:0}.thing-model-table th{color:var(--text-subtle);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;padding:7px 8px;font-size:11px;font-weight:600}.thing-model-table td{border-bottom:1px solid var(--border-soft);vertical-align:middle;padding:8px}.thing-model-row.is-editing{background:#f8fafc}.th-status{text-align:center;width:44px}.thing-model-dot{border-radius:50%;width:8px;height:8px;transition:all .2s;display:inline-block}.dot--resolved{background:var(--green);box-shadow:0 0 6px #16a34a73}.dot--missing{background:var(--orange);box-shadow:0 0 5px #ea580c59}.dot--invalid{background:var(--red);box-shadow:0 0 5px #dc262666}.dot--idle{background:#cbd5e1}.thing-model-key{color:var(--text-main);white-space:nowrap;font-size:12px}.type-badge{border-radius:var(--radius-sm);background:var(--panel-strong);border:1px solid var(--border-soft);color:var(--text-subtle);padding:1px 6px;font-size:11px;display:inline-block}.thing-model-rule{min-width:170px}.thing-model-rule-input{box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius-sm);color:#0369a1;background:#fff;width:100%;height:28px;padding:0 8px;font-size:11px;font-weight:600;transition:border-color .15s}.thing-model-rule-input:focus{border-color:var(--blue);background:#f0f9ff;outline:0}.rule-hex-fields{color:var(--text-subtle);align-items:center;gap:6px;font-size:11px;display:flex}.rule-hex-fields label{align-items:center;gap:3px;display:inline-flex}.hex-input{border:1px solid var(--border);border-radius:var(--radius-sm);text-align:center;width:44px;height:26px;padding:0 4px;font-size:11px}.hex-select{border:1px solid var(--border);border-radius:var(--radius-sm);height:26px;padding:0 4px;font-size:11px}.thing-model-val-box{white-space:nowrap;align-items:center;gap:6px;display:flex}.row-actions{align-items:center;gap:8px;display:inline-flex}.action-link{border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:0;align-items:center;gap:3px;padding:2px 6px;font-size:11px;font-weight:600;transition:all .15s;display:inline-flex}.action-link:hover{background:var(--panel-strong)}.action-link.text-blue{color:var(--blue)}.action-link.text-blue:hover{background:var(--blue-soft)}.action-link.text-emerald-600{color:var(--green)}.action-link.text-emerald-600:hover{background:#dcfce7}.empty-cell{text-align:center;color:var(--text-muted);padding:32px 16px;font-size:13px}.hex-signed-bar{border-top:1px solid var(--border-soft);background:var(--panel-soft);padding:10px 14px;font-size:12px}.thing-model-footer{border-top:1px solid var(--border-soft);background:var(--panel-soft);justify-content:space-between;align-items:center;padding:8px 14px;display:flex}.sandbox-payload-box--dark{color:#e2e8f0;background:#0f172a;border:1px solid #1e293b}.sandbox-payload-box--dark .sandbox-toggle-btn{color:#f1f5f9}.payload-byte-count{color:#38bdf8;font-family:var(--font-mono);background:#ffffff14;border-radius:4px;padding:1px 6px;font-size:10px;display:inline-block}.sandbox-payload-box--dark .sandbox-payload-editor{color:#38bdf8;background:#090d16;border-color:#334155;font-size:11px;line-height:1.5}.sandbox-payload-box--dark .sandbox-payload-editor:focus{border-color:#0284c7}.sandbox-pipeline-trace{border-radius:var(--radius);color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0;flex-direction:column;gap:6px;padding:10px 12px;animation:.2s ease-in-out fadeIn;display:flex}.pipeline-trace-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.pipeline-trace-latency{color:#059669;background:#10b9811f;border-radius:4px;align-items:center;gap:3px;padding:1px 5px;font-size:10px;display:inline-flex}@keyframes fadeIn{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}.product-page-workbench{grid-template-columns:240px minmax(0,1fr);align-items:stretch;gap:16px;min-height:calc(100vh - 146px);display:grid}.product-protocol-workspace{flex-direction:column;flex:1;min-width:0;display:flex}.product-workspace-grid{min-height:calc(100vh - 160px);box-shadow:none;background:0 0;border:none;flex:1;grid-template-columns:minmax(0,1fr) 390px;gap:16px;display:grid;overflow:visible}@media (width>=641px){.product-workspace-tabs{display:none!important}}.product-selector__item{border-radius:10px}.thing-model-workbench-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;min-width:0;height:100%;display:flex;overflow:hidden;box-shadow:0 1px 3px #0f172a0d}.thing-model-workbench-header{background:#fafafa;border-bottom:1px solid #e2e8f0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:14px 18px;display:flex}.thing-model-header-left{flex:240px;align-items:center;gap:12px;min-width:0;display:flex}.thing-model-icon-box{color:#15803d;background:#dcfce7;border:1px solid #bbf7d0;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.thing-model-title-box{flex:1;min-width:0}.thing-model-title-row h2{color:#0f172a;white-space:normal;overflow-wrap:anywhere;margin:0;font-size:16px;font-weight:700}.product-key-pill{color:#475569;white-space:nowrap;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;padding:2px 8px;font-size:11px}.protocol-format-pill{color:#0369a1;white-space:nowrap;background:#e0f2fe;border-radius:6px;padding:2px 8px;font-size:11px;font-weight:600}.thing-model-desc{color:#64748b;white-space:nowrap;text-overflow:ellipsis;margin:3px 0 0;font-size:11.5px;overflow:hidden}.thing-model-header-right{flex-shrink:0;align-items:center;gap:10px;display:flex}.add-metric-emerald-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#16a34a;border:none;border-radius:8px;align-items:center;gap:6px;padding:6px 14px;font-size:12px;font-weight:600;transition:all .15s;display:inline-flex;box-shadow:0 1px 2px #16a34a40}.add-metric-emerald-btn:hover{background:#15803d}.sub-view-bar{background:#fff;border-bottom:1px solid #f1f5f9;align-items:center;padding:6px 18px;display:flex}.sub-view-switch{background:#f1f5f9;border-radius:7px;gap:2px;padding:2px;display:flex}.sub-view-btn{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:5px;padding:3px 10px;font-size:11px;font-weight:600;transition:all .15s}.thing-model-status-strip{background:#fff;border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:9px 18px;font-size:12px;display:flex}.status-strip-left{align-items:center;gap:8px;display:flex}.status-strip-title{color:#334155;font-size:12px;font-weight:700}.status-strip-divider{color:#cbd5e1}.status-strip-pill{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;padding:2px 8px;font-size:11px;font-weight:600}.status-strip-right{color:#64748b;align-items:center;gap:12px;font-size:11px;display:flex}.legend-item{align-items:center;gap:5px;display:inline-flex}.legend-dot{border-radius:50%;width:7px;height:7px}.legend-dot--emerald{background:#16a34a}.legend-dot--orange{background:#f97316}.legend-dot--red{background:#ef4444}.thing-model-workbench-content{flex-direction:column;flex:1;min-height:0;display:flex}.thing-model-grid-container{flex:1;min-height:380px;overflow:auto}.thing-model-matrix-table{border-collapse:collapse;text-align:left;width:100%;font-size:12px}.thing-model-matrix-table thead{z-index:2;background:#f8fafc;border-bottom:1px solid #e2e8f0;position:sticky;top:0}.thing-model-matrix-table th{color:#64748b;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;padding:10px;font-size:11px;font-weight:600}.thing-model-matrix-table th.th-rule{color:#0369a1}.thing-model-matrix-table td{vertical-align:middle;border-bottom:1px solid #f1f5f9;padding:11px 10px}.thing-model-row:hover{background:#f8fafc}.thing-model-dot{border-radius:50%;width:9px;height:9px;display:inline-block}.thing-model-dot.dot--resolved{background:#16a34a;box-shadow:0 0 5px #16a34a66}.thing-model-dot.dot--pending{background:#94a3b8}.thing-model-dot.dot--missing{background:#f97316}.thing-model-dot.dot--invalid{background:#ef4444}.rule-hex-fields{flex-wrap:wrap;gap:6px;display:flex}.rule-hex-fields label{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.rule-hex-fields .hex-input{width:60px;min-width:0}.hex-advanced-fields{margin-top:6px;font-size:11px}.hex-advanced-fields summary{color:var(--blue);cursor:pointer}.hex-advanced-fields label{align-items:center;gap:4px;margin-top:6px;display:flex}.hex-advanced-fields input[type=number],.hex-advanced-fields select{width:85px;min-width:0}.hex-advanced-fields input[type=checkbox]{width:auto}.thing-model-key strong{color:#0f172a;font-size:12px}.thing-model-rule-input{color:#0284c7;background:#f0f9ff;border:1px solid #bae6fd;border-radius:6px;width:100%;max-width:130px;height:26px;padding:0 6px;font-size:11px;font-weight:600}.thing-model-rule-input:focus{background:#fff;border-color:#0284c7;outline:none;box-shadow:0 0 0 2px #0284c726}.preview-val-idle{color:#64748b;font-size:12px;font-weight:700}.preview-val-text{color:#16a34a;font-size:12px}.thing-model-card-footer{color:#64748b;background:#f8fafc;border-top:1px solid #e2e8f0;justify-content:space-between;align-items:center;padding:10px 18px;font-size:12px;display:flex}.json-source-link{color:#0284c7;cursor:pointer;background:0 0;border:none;font-size:12px;font-weight:500}.json-source-link:hover{text-decoration:underline}.protocol-simulator-card{box-sizing:border-box;background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;flex:0 auto;gap:14px;width:100%;min-width:0;height:100%;padding:16px;display:flex;overflow-y:auto;box-shadow:0 1px 3px #0f172a0d}.protocol-simulator-header{border-bottom:1px solid #f1f5f9;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding-bottom:10px;display:flex}.simulator-eyebrow{color:#94a3b8;letter-spacing:.08em;font-size:10px;font-weight:700;display:block}.protocol-simulator-header h3{color:#0f172a;margin:2px 0 0;font-size:15px;font-weight:700}.run-sim-emerald-btn{color:#fff;cursor:pointer;background:#16a34a;border:none;border-radius:8px;align-items:center;gap:6px;padding:6px 14px;font-size:12px;font-weight:600;transition:all .15s;display:inline-flex;box-shadow:0 1px 2px #16a34a40}.run-sim-emerald-btn:hover{background:#15803d}.sandbox-payload-box--dark{color:#e2e8f0;background:#0f172a;border:1px solid #1e293b;border-radius:10px;padding:12px}.payload-box-top{border-bottom:1px solid #1e293b;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding-bottom:8px;font-size:11px;display:flex}.payload-box-title{color:#4ade80;font-weight:700}.payload-box-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.payload-byte-count{color:#38bdf8;background:#ffffff14;border-radius:4px;padding:1px 6px;font-size:10px}.preset-btn{color:#cbd5e1;cursor:pointer;background:#1e293b;border:1px solid #334155;border-radius:4px;padding:1px 7px;font-size:10px}.preset-btn:hover:not(:disabled){color:#fff;background:#334155}.sandbox-payload-editor{color:#4ade80;box-sizing:border-box;resize:vertical;background:#090d16;border:1px solid #334155;border-radius:6px;width:100%;margin-top:8px;padding:8px;font-size:11px;line-height:1.6}.sandbox-pipeline-trace{overflow-wrap:anywhere;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:10px;flex-direction:column;gap:6px;padding:12px;display:flex}.pipeline-trace-header{justify-content:space-between;align-items:center;display:flex}.pipeline-trace-title{color:#047857;align-items:center;gap:6px;font-size:12px;display:inline-flex}.pipeline-trace-latency{color:#059669;background:#10b98126;border-radius:4px;padding:1px 6px;font-size:10px;font-weight:600}.pipeline-trace-desc{color:#065f46;margin:0;font-size:11px;line-height:1.5}.sandbox-pipeline-trace[data-state=pending]{background:#f8fafc;border-color:#cbd5e1}.sandbox-pipeline-trace[data-state=failed]{background:#fef2f2;border-color:#fecaca}.sandbox-pipeline-trace[data-state=missing]{background:#fff7ed;border-color:#fed7aa}.sandbox-pipeline-trace[data-state=pending] .pipeline-trace-title,.sandbox-pipeline-trace[data-state=pending] .pipeline-trace-desc{color:#475569}.sandbox-pipeline-trace[data-state=failed] .pipeline-trace-title,.sandbox-pipeline-trace[data-state=failed] .pipeline-trace-desc{color:#b91c1c}.sandbox-pipeline-trace[data-state=missing] .pipeline-trace-title{color:#c2410c}.pipeline-trace-summary{color:#334155;margin:0;font-size:11px}.pipeline-trace-summary>div{grid-template-columns:60px minmax(0,1fr);gap:6px;margin:4px 0;display:grid}.pipeline-trace-summary dd{margin:0}.pipeline-trace-warnings{color:#b45309;margin:0;padding-left:16px;font-size:11px}.protocol-simulator-footer{border-top:1px solid #f1f5f9;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:auto;padding-top:12px;display:flex}.version-hint{color:#94a3b8;font-size:11px}.simulator-footer-actions{flex-wrap:wrap;align-items:center;gap:8px;max-width:100%;display:flex}.delete-protocol-link{color:#94a3b8;cursor:pointer;background:0 0;border:none;font-size:11px}.delete-protocol-link:hover{color:#ef4444}.save-publish-btn{color:#fff;cursor:pointer;background:#0284c7;border:none;border-radius:8px;align-items:center;gap:6px;padding:7px 14px;font-size:12px;font-weight:600;transition:all .15s;display:inline-flex;box-shadow:0 1px 2px #0284c740}.save-publish-btn:hover{background:#0369a1}.thing-model-matrix-table{table-layout:fixed;width:100%}.th-status,.thing-model-matrix-table td:first-child{text-align:center;width:34px}.th-key,.thing-model-matrix-table td:nth-child(2){text-overflow:ellipsis;width:95px;overflow:hidden}.th-label,.thing-model-matrix-table td:nth-child(3){text-overflow:ellipsis;width:80px;overflow:hidden}.th-type,.thing-model-matrix-table td:nth-child(4){width:62px}.th-unit,.thing-model-matrix-table td:nth-child(5){width:44px}.th-rule,.thing-model-matrix-table td:nth-child(6){width:135px}.th-preview,.thing-model-matrix-table td:nth-child(7){width:80px}.th-actions,.thing-model-matrix-table td:nth-child(8){text-align:right;width:65px}.thing-model-rule-input{width:100%;max-width:120px;height:26px;padding:0 6px;font-size:11px}@media (width<=640px){.protocol-simulator-card{height:auto}.thing-model-workbench-header{flex-wrap:wrap;padding:12px}.thing-model-title-box .thing-model-title-row{flex-wrap:wrap}.thing-model-title-row h2{white-space:normal;overflow-wrap:anywhere}.product-key-pill{white-space:normal;overflow-wrap:anywhere;max-width:100%}.sub-view-bar{padding:6px}.sub-view-switch{flex-wrap:wrap}.thing-model-status-strip{flex-wrap:wrap;gap:8px;padding:9px 12px}.status-strip-left{flex-wrap:wrap}.thing-model-card-footer{flex-wrap:wrap;gap:8px;padding:10px 12px}.simulator-footer-actions{width:100%}.save-publish-btn{max-width:100%}}.thing-model-title-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.product-key-pill,.protocol-format-pill{white-space:normal;overflow-wrap:anywhere;flex-shrink:0;max-width:100%}.product-selector__item.is-selected{background:#f0f9ff!important;border-color:#93c5fd #93c5fd #93c5fd #0284c7!important;border-left-style:solid!important;border-left-width:4px!important;box-shadow:0 1px 3px #0284c714!important}.product-selector__item.is-selected strong{color:#0369a1!important}.thing-model-icon-box{color:#0284c7!important;background:#e0f2fe!important;border:1px solid #bae6fd!important}.add-metric-primary-btn,.add-metric-emerald-btn{cursor:pointer;white-space:nowrap;border:none;border-radius:8px;align-items:center;gap:6px;padding:6px 14px;font-size:12px;font-weight:600;transition:all .15s;display:inline-flex;color:#fff!important;background:#0284c7!important;box-shadow:0 1px 2px #0284c740!important}.add-metric-primary-btn:hover,.add-metric-emerald-btn:hover{background:#0369a1!important}.sub-view-btn.is-active{color:#0284c7!important;background:#fff!important;box-shadow:0 1px 2px #0284c71a!important}.status-strip-pill{color:#0369a1!important;background:#f0f9ff!important;border:1px solid #bae6fd!important}.run-sim-primary-btn,.run-sim-emerald-btn{cursor:pointer;border:none;border-radius:8px;align-items:center;gap:6px;padding:6px 14px;font-size:12px;font-weight:600;transition:all .15s;display:inline-flex;color:#fff!important;background:#0284c7!important;box-shadow:0 1px 2px #0284c740!important}.run-sim-primary-btn:hover,.run-sim-emerald-btn:hover{background:#0369a1!important}.product-selector{height:100%}.product-selector__head{border-bottom:1px solid #f1f5f9!important;justify-content:space-between!important;align-items:center!important;gap:8px!important;padding:0 0 10px!important;display:flex!important}.product-selector__head-left{flex-direction:column;gap:2px;min-width:0;display:flex}.product-selector__head-title{align-items:center;gap:8px;display:flex}.product-selector__head-title h2{color:#0f172a!important;margin:0!important;font-size:15px!important;font-weight:700!important}.product-selector__list{flex:1!important;align-content:start!important;min-height:0!important;overflow-y:auto!important}.create-product-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#0284c7;border:none;border-radius:6px;flex-shrink:0;align-items:center;gap:5px;padding:5px 10px;font-size:12px;font-weight:600;transition:all .15s;display:inline-flex;box-shadow:0 1px 2px #0284c740}.create-product-btn:hover{background:#0369a1}.product-modal-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:1000;background:#0f172a73;justify-content:center;align-items:center;padding:16px;animation:.15s ease-out modalFadeIn;display:flex;position:fixed;inset:0}.product-modal-dialog{background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;width:520px;max-width:100%;animation:.18s cubic-bezier(.16,1,.3,1) modalZoomIn;display:flex;overflow:hidden;box-shadow:0 20px 25px -5px #0f172a26,0 8px 10px -6px #0f172a1a}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalZoomIn{0%{opacity:0;transform:scale(.96)translateY(6px)}to{opacity:1;transform:scale(1)translateY(0)}}.product-modal-header{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:flex-start;padding:16px 20px 14px;display:flex}.product-modal-header__title{align-items:flex-start;gap:12px;display:flex}.product-modal-header__icon{color:#0284c7;background:#e0f2fe;border:1px solid #bae6fd;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.product-modal-header__title h3{color:#0f172a;margin:0 0 2px;font-size:16px;font-weight:700}.product-modal-header__title p{color:#64748b;margin:0;font-size:12px;line-height:1.4}.product-modal-close-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:4px;transition:all .15s;display:flex}.product-modal-close-btn:hover{color:#0f172a;background:#f1f5f9}.product-modal-form{flex-direction:column;margin:0;display:flex}.product-modal-error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;align-items:center;gap:8px;margin:12px 20px 0;padding:8px 12px;font-size:12px;display:flex}.product-modal-body{flex-direction:column;gap:16px;padding:16px 20px 20px;display:flex}.product-modal-section{flex-direction:column;gap:8px;display:flex}.product-modal-section__title{text-transform:uppercase;letter-spacing:.05em;color:#64748b;font-size:11px;font-weight:700}.product-modal-grid{gap:12px;display:grid}.product-modal-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.product-modal-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.product-modal-field{flex-direction:column;gap:5px;display:flex}.product-modal-label{color:#334155;font-size:12px;font-weight:600}.product-modal-label .req{color:#ef4444;margin-left:2px}.product-modal-input,.product-modal-select{color:#0f172a;box-sizing:border-box;background:#f8fafc;border:1px solid #cbd5e1;border-radius:6px;outline:none;width:100%;height:36px;padding:0 10px;font-size:13px;transition:all .15s}.product-modal-input:focus,.product-modal-select:focus{background:#fff;border-color:#0284c7;box-shadow:0 0 0 3px #0284c71f}.product-modal-input.font-mono{font-family:var(--font-mono,monospace);font-size:12px}.product-modal-footer{background:#f8fafc;border-top:1px solid #e2e8f0;justify-content:flex-end;align-items:center;gap:10px;padding:14px 20px;display:flex}.product-modal-cancel-btn{color:#475569;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:6px;padding:7px 14px;font-size:12px;font-weight:600;transition:all .15s}.product-modal-cancel-btn:hover{color:#0f172a;background:#f1f5f9}.product-modal-submit-btn{color:#fff;cursor:pointer;background:#0284c7;border:none;border-radius:6px;align-items:center;gap:6px;padding:7px 16px;font-size:12px;font-weight:600;transition:all .15s;display:inline-flex;box-shadow:0 1px 2px #0284c740}.product-modal-submit-btn:hover:not(:disabled){background:#0369a1}.product-modal-submit-btn:disabled{opacity:.6;cursor:not-allowed}.modal-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1000;background:#0f172a73;justify-content:center;align-items:center;padding:20px;animation:.15s ease-out modalFadeIn;display:flex;position:fixed;inset:0}.modal-dialog{background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;width:640px;max-width:100%;max-height:85vh;animation:.18s cubic-bezier(.16,1,.3,1) modalZoomIn;display:flex;overflow:hidden;box-shadow:0 20px 25px -5px #0f172a26}.modal-dialog__head{border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.modal-dialog__head strong{color:#0f172a;font-size:15px}.modal-dialog__head .close-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px}.modal-dialog__head .close-btn:hover{color:#0f172a;background:#f1f5f9}.modal-dialog__body{flex:1;padding:16px 18px;overflow-y:auto}.modal-dialog__body .json-pre{color:#38bdf8;background:#0f172a;border-radius:8px;margin:0;padding:14px;font-size:12px;line-height:1.5;overflow-x:auto}.modal-dialog__actions{background:#f8fafc;border-top:1px solid #e2e8f0;justify-content:flex-end;padding:12px 18px;display:flex}.modal-dialog__actions .primary-button{color:#fff;cursor:pointer;background:#0284c7;border:none;border-radius:6px;padding:6px 14px;font-size:12px;font-weight:600}.modal-dialog__actions .primary-button:hover{background:#0369a1}.product-base-settings{min-width:0;min-height:0;overflow-y:auto}.product-base-settings[hidden]{display:none}.product-base-settings>.upload-monitor-card{margin:0 24px 24px}.upload-monitor-card{min-width:0;max-width:820px}.upload-monitor-skeleton{border:1px solid var(--border-soft);border-radius:var(--radius);background:linear-gradient(90deg,#0000,#ffffffb3,#0000) 0 0/220px 100%,repeating-linear-gradient(#f3f6fb 0 34px,#0000 34px 52px) 0 0/100% 100%;min-height:220px}.upload-monitor-toggle{border:1px solid var(--border-soft);border-radius:var(--radius);background:var(--panel-soft);align-items:center;gap:12px;padding:14px;display:flex}.upload-monitor-toggle input{flex:none;width:18px;height:18px}.upload-monitor-toggle span{gap:2px;display:grid}.upload-monitor-toggle strong{font-size:14px}.upload-monitor-toggle small,.upload-monitor-summary span{color:var(--text-subtle);font-size:13px}.upload-monitor-duration-grid{grid-template-columns:minmax(0,1fr) minmax(92px,.62fr);gap:10px;display:grid}.upload-monitor-severity{max-width:260px}.upload-monitor-summary{border:1px solid var(--border-soft);border-radius:var(--radius);background:var(--panel);align-items:center;gap:10px;min-height:42px;padding:10px 12px;display:flex}.upload-monitor-baseline{border:1px dashed var(--border-soft);border-radius:var(--radius);background:var(--panel-soft);min-height:36px;padding:9px 12px}.upload-monitor-baseline span{color:var(--text-subtle);font-size:13px}.upload-monitor-summary svg{color:var(--blue);flex:none}.upload-monitor-save{justify-self:start}@media (width<=640px){.product-base-settings>.upload-monitor-card{margin:0 12px 16px}.upload-monitor-severity,.upload-monitor-save{width:100%;max-width:none}}.user-governance-tabs{border-bottom:1px solid var(--border);gap:6px;margin-bottom:16px;display:flex}.user-governance-tabs button{color:var(--text-subtle);background:0 0;border:0;border-bottom:2px solid #0000;padding:10px 14px;font-size:14px}.user-governance-tabs button.is-active{border-color:var(--blue);color:var(--blue);font-weight:700}.user-filter-bar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;padding:14px 16px 0;display:flex}.user-filter-bar input[type=search]{min-width:200px;height:var(--control-height);min-height:var(--control-height);border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);box-sizing:border-box;flex:0 320px;padding:0 12px;font-size:14px}.user-filter-bar select{width:150px;height:var(--control-height);min-height:var(--control-height);border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);box-sizing:border-box;flex:0 0 150px;padding:0 10px;font-size:14px}.user-table th:first-child{width:25%}.user-table th:nth-child(2){width:15%}.user-table th:nth-child(3){width:14%}.user-table th:nth-child(4){width:34%}.user-table th:nth-child(5){text-align:right;width:12%}.user-table td:nth-child(5){text-align:right}.user-table td strong,.invitation-table td strong{display:block}.user-table td .mono,.invitation-table td .mono{color:var(--text-muted);word-break:break-all;margin-top:3px;font-size:12px;display:block}.user-open-button{width:auto}.user-detail{gap:18px;display:grid}.user-detail dl{gap:10px;margin:0;display:grid}.user-detail dl>div{grid-template-columns:104px minmax(0,1fr);gap:12px;display:grid}.user-detail dt{color:var(--text-muted)}.user-detail dd{overflow-wrap:anywhere;margin:0}.user-detail .field{gap:8px}.user-detail .field>strong{align-items:center;min-height:32px;display:flex}.governance-drawer .ant-drawer-body{padding:20px}.governance-warning,.governance-danger,.success-banner{border-radius:var(--radius);padding:12px;line-height:1.6}.governance-warning{color:#ad6800;background:#fff7e6}.governance-danger{color:#a8071a;background:#fff1f0;border:1px solid #ffccc7}.success-banner{color:#237804;background:#f6ffed;border:1px solid #b7eb8f}.capability-list{flex-wrap:wrap;gap:6px;display:flex}.capability-list span{border-radius:var(--radius);background:var(--blue-soft);color:#0958d9;overflow-wrap:anywhere;padding:3px 7px;font:12px Cascadia Code,monospace}.role-directory{gap:12px;display:grid}.role-directory article{border:1px solid var(--border-soft);border-radius:var(--radius);gap:8px;padding:16px;display:grid}.role-directory p,.role-summary{color:var(--text-subtle)}.invitation-create-button{width:auto}.invitation-once{border-radius:var(--radius);background:var(--blue-soft);border:1px solid #91caff;gap:8px;margin-bottom:16px;padding:14px;display:grid}.invitation-once code{overflow-wrap:anywhere;background:#fff;border:1px solid #bae0ff;max-width:100%;padding:8px;display:block}.invitation-once .ghost-button{width:fit-content}.alarm-summary-strip,.alarm-trend-panel .alarm-history-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.alarm-rule-list-panel .panel-head{justify-content:space-between;align-items:center;display:flex}.alarm-rule-drawer-trigger{width:auto}.alarm-filter-panel{padding:14px 16px}.history-filters{background:var(--panel);border-bottom:1px solid var(--border-soft);flex-direction:column;gap:10px;padding:12px 16px;display:flex}.history-filters__row{box-sizing:border-box;width:100%}.history-filters__row--primary{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.history-filters__row--primary>.toolbar-field{flex:150px}.history-filters__row--primary>.toolbar-field--search{flex-basis:220px;max-width:none}.history-filters__row--primary>.toolbar-field--range-picker{flex-basis:350px}.history-filters__row--secondary{grid-template-columns:repeat(auto-fit,minmax(min(140px,100%),1fr));align-items:center;gap:10px;display:grid}.history-filters .toolbar-field{box-sizing:border-box;align-items:center;width:100%;min-width:0;height:36px;min-height:36px;max-height:36px;display:flex;box-shadow:none!important;background:0 0!important;border:none!important;outline:none!important;margin:0!important;padding:0!important}.history-filters .toolbar-field:not(.toolbar-field--range-picker) input,.history-filters .toolbar-field select{border-radius:var(--radius);width:100%;height:36px;min-height:36px;max-height:36px;color:var(--text-main);box-sizing:border-box;outline:none;padding:0 10px;font-size:13px;transition:border-color .15s,box-shadow .15s;border:1px solid var(--border)!important;background:var(--panel)!important}.history-filters .toolbar-field:not(.toolbar-field--range-picker) input:focus,.history-filters .toolbar-field select:focus{border-color:var(--blue)!important;box-shadow:0 0 0 2px var(--blue-soft)!important}.history-filters .toolbar-field select{appearance:none;cursor:pointer;padding-right:24px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")!important;background-position:right 8px center!important;background-repeat:no-repeat!important}.history-filters .toolbar-field--search{position:relative}.history-filters .toolbar-field--search .toolbar-field__search-icon{color:var(--text-muted);pointer-events:none;z-index:1;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.history-filters .toolbar-field--search input{padding-left:30px}.history-filters .toolbar-field--range-picker{background:0 0!important;border:none!important;padding:0!important}.history-filters .toolbar-field--range-picker .ant-picker{border-radius:var(--radius);box-sizing:border-box;width:100%;height:36px;min-height:36px;max-height:36px;border:1px solid var(--border)!important}.history-filters .toolbar-field--range-picker .ant-picker:hover{border-color:var(--blue)!important}.history-filters .toolbar-field--range-picker .ant-picker-focused{border-color:var(--blue)!important;box-shadow:0 0 0 2px var(--blue-soft)!important}.history-filters .toolbar-field--range-picker input,.history-filters .toolbar-field--range-picker .ant-picker-input>input{height:auto!important;min-height:0!important;max-height:none!important;box-shadow:none!important;background:0 0!important;border:none!important;border-radius:0!important;outline:none!important;padding:0!important}.history-filters__secondary-badge{height:36px;color:var(--text-muted);background:var(--bg);border:1px dashed var(--border);border-radius:var(--radius);white-space:nowrap;-webkit-user-select:none;user-select:none;box-sizing:border-box;align-items:center;gap:5px;padding:0 10px;font-size:12px;font-weight:500;display:inline-flex}.history-filters__actions{white-space:nowrap;justify-self:end;align-items:center;gap:8px;margin-left:auto;display:flex}.history-filters__actions .icon-button{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);width:36px;height:36px;min-height:36px;color:var(--text-subtle);cursor:pointer;justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.history-filters__actions .icon-button:hover:not(:disabled){border-color:var(--blue);color:var(--blue);background:var(--blue-soft)}.history-filters__reset-btn{height:36px;min-height:36px;color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);cursor:pointer;align-items:center;gap:5px;padding:0 10px;font-size:13px;transition:all .15s;display:inline-flex}.history-filters__reset-btn:hover{border-color:var(--orange);color:var(--orange-ink);background:var(--orange-bg)}.history-filters__export-btn{border-radius:var(--radius);border:1px solid var(--border);background:var(--panel);height:36px;min-height:36px;color:var(--text-main);cursor:pointer;align-items:center;gap:6px;padding:0 12px;font-size:13px;transition:all .15s;display:inline-flex}.history-filters__export-btn:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-soft)}.history-filters__tags{flex-wrap:wrap;align-items:center;gap:8px;padding-top:2px;display:flex}.history-filters .message-device-limit,.history-filters .tag{overflow-wrap:anywhere;background:var(--blue-soft);max-width:100%;height:32px;color:var(--blue);border-radius:var(--radius);align-items:center;gap:6px;padding:0 10px;font-size:12px;display:inline-flex}.history-filters .message-device-limit button{color:var(--blue);cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:12px;text-decoration:underline}.history-pagination{border-bottom:1px solid var(--border);background:#f8fafc;justify-content:space-between;align-items:center;gap:12px;padding:8px 16px;display:flex}.history-pagination__status{align-items:center;gap:10px;display:flex}.history-pagination__badge{border:1px solid var(--border);color:var(--text-subtle);background:#fff;border-radius:999px;align-items:center;gap:8px;padding:4px 10px;font-size:12px;display:inline-flex;box-shadow:0 1px 2px #0f172a0a}.history-pagination__dot{background:var(--green);border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 2px #10b98133}.history-pagination__badge.is-history .history-pagination__dot{background:var(--orange);box-shadow:0 0 0 2px #f59e0b33}.history-pagination__latest-btn{border-radius:var(--radius);border:1px solid var(--border);height:30px;color:var(--text-subtle);cursor:pointer;background:#fff;padding:0 10px;font-size:12px;transition:all .15s}.history-pagination__latest-btn:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-soft)}.history-pagination__latest-btn.has-new{color:var(--blue);border-color:var(--blue);background:var(--blue-soft);font-weight:600}.history-pagination__controls{align-items:center;gap:8px;display:flex}.history-pagination__page-number{color:var(--text-main);padding:0 4px;font-size:13px;font-weight:500}.history-pagination .icon-button{border-radius:var(--radius);border:1px solid var(--border);width:32px;height:32px;min-height:32px;color:var(--text-subtle);cursor:pointer;background:#fff;justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.history-pagination .icon-button:hover:not(:disabled){border-color:var(--blue);color:var(--blue);background:var(--blue-soft)}.history-pagination .icon-button:disabled{opacity:.45;cursor:not-allowed;border-color:var(--border-soft)}.history-export-form{overflow-wrap:anywhere;gap:12px;display:grid}.export-time-section{border:1px solid var(--border-soft);border-radius:var(--radius);background:#f8fafc;flex-direction:column;gap:8px;padding:12px;display:flex}.export-time-section .field-title{color:var(--text);align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.export-presets-row{flex-wrap:wrap;gap:6px;display:flex}.export-presets-row .preset-btn{border-radius:var(--radius);background:var(--panel);border:1px solid var(--border);height:28px;min-height:28px;padding:4px 10px;font-size:12px}.export-presets-row .preset-btn:hover{border-color:var(--blue);color:var(--blue)}.export-exact-inputs{grid-template-columns:1fr 1fr;gap:12px;display:grid}.history-export-form input{width:100%;min-width:0}.history-session-status{overflow-wrap:anywhere;gap:4px;padding:10px 16px;display:grid}.history-table-scroll{min-width:0;overflow:auto}.history-table-scroll table{min-width:700px}.history-table-scroll td{overflow-wrap:anywhere;white-space:normal;max-width:300px}.history-table-scroll small{display:block}.ingress-history{min-width:0}.ingress-history .message-workbench{min-height:420px}@media (width<=1280px){.product-page-workbench{grid-template-columns:250px minmax(0,1fr)}.product-workspace-grid{grid-template-columns:140px minmax(0,1fr) 270px}.metric-editor-card__fields,.workspace-inline-form{grid-template-columns:repeat(3,minmax(0,1fr))}.workspace-inline-form>div,.workspace-inline-form .ghost-button{grid-column:1/-1}.summary-strip--wide,.screen-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.workspace-grid,.admin-grid,.message-workbench{grid-template-columns:1fr}.inbound-messages-panel .message-workbench{height:auto;min-height:0}.inbound-messages-panel .message-list{height:clamp(320px,52dvh,440px);max-height:52dvh}.fill-panel,.section-block--fill{min-height:auto}.monitor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.monitor-panel--span-3,.monitor-panel--span-4,.monitor-panel--span-5,.monitor-panel--span-6,.monitor-panel--span-8{grid-column:span 1}.debug-workbench-grid{grid-template-rows:minmax(560px,auto) auto auto;grid-template-columns:minmax(210px,.72fr) minmax(0,1.28fr)}.debug-session-pane{grid-area:1/1}.debug-stream-pane{grid-area:1/2}.debug-inspector-pane{grid-area:2/1/auto/-1;min-height:520px}.debug-composer{grid-row:3}.debug-command-grid{grid-template-columns:1fr}}@media (width<=900px){.product-page-workbench{grid-template-columns:1fr}.product-selector{max-height:420px}.product-workspace-grid{grid-template-columns:132px minmax(0,1fr) 250px;min-height:560px}.login-screen{background:var(--bg);grid-template-columns:1fr}.login-aside{background:var(--sidebar);min-height:auto;padding:24px}.login-aside__copy{margin-top:24px}.shell-header.ant-layout-header{flex-direction:column;align-items:flex-start}.shell-actions{width:100%}.device-filter-panel .filter-bar{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.device-filter-panel .toolbar-field:not(.toolbar-field--search){flex:auto;width:auto}.device-filter-panel .toolbar-field--search,.device-filter-panel .device-refresh-button{grid-column:1/-1;margin-left:0}.summary-strip,.summary-strip--wide,.screen-kpi-grid,.detail-grid,.metric-grid,.history-summary-grid,.form-grid--2,.form-grid--3,.screen-metric-strip{grid-template-columns:1fr}.debug-workbench-grid{grid-template-rows:auto;grid-template-columns:1fr}.debug-session-pane,.debug-stream-pane,.debug-inspector-pane,.debug-composer{grid-area:auto/1}.debug-session-pane,.debug-stream-pane,.debug-inspector-pane{min-height:520px}.debug-composer,.debug-composer__form{grid-template-columns:1fr}}@media (width<=640px){.dashboard-page>.dashboard-filters-panel{order:-1}.dashboard-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-admin-grid{grid-template-columns:minmax(0,1fr)}.dashboard-products-panel .device-table-wrap{max-width:100%;overflow-x:auto}.dashboard-products-panel{overflow-x:hidden}.dashboard-products-panel .mini-table{min-width:540px}.dashboard-products-panel:not(.is-products-expanded) tbody tr:nth-child(n+5),.dashboard-mobile-truncated-list>.list-item:nth-child(n+4){display:none}.dashboard-products-panel .dashboard-products-toggle{align-self:stretch;width:auto;margin:0 16px 16px;display:inline-flex}.product-page-workbench{min-height:calc(100dvh - 72px);display:block}.product-page-workbench>.error-banner{margin-bottom:12px}.product-page-workbench.is-selector-open .product-page-workbench__main,.product-page-workbench:not(.is-selector-open) .product-selector{display:none}.product-page-workbench.is-selector-open .product-selector{min-height:calc(100dvh - 100px);max-height:none}.product-selector{min-height:auto;max-height:none;margin-bottom:12px}.product-selector__list{max-height:300px}.product-mobile-selector-button{width:auto;margin-bottom:10px;display:inline-flex}.product-page-workbench__actions{grid-template-columns:minmax(0,1fr) max-content;align-items:center;display:grid}.product-page-workbench__actions .product-mobile-selector-button{width:100%;min-width:0}.product-page-workbench__actions .product-delete-button,.product-page-workbench__actions .product-delete-button span{white-space:nowrap}.product-workspace-head{flex-direction:column;align-items:stretch;gap:12px}.product-workspace-head h2{font-size:19px}.product-workspace-actions{grid-template-columns:1fr 1fr;display:grid}.product-workspace-actions .ghost-button,.product-workspace-actions .primary-button{width:100%}.workspace-mobile-tab{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-strong);grid-template-columns:1fr 1fr;gap:6px;padding:4px;display:grid}.workspace-mobile-tab button{color:var(--text-subtle);background:0 0;border:0;border-radius:3px;padding:8px}.workspace-mobile-tab button.is-active{background:var(--panel);color:var(--blue);box-shadow:0 1px 2px #0f172a1a}.product-workspace-grid{min-height:0;display:block;overflow:visible}.product-workspace-grid.is-mobile-preview .product-workspace-tabs,.product-workspace-grid.is-mobile-preview .product-workspace-config,.product-workspace-grid.is-mobile-config .product-workspace-preview{display:none}.product-workspace-tabs{border-right:0;border-bottom:1px solid var(--border-soft);grid-template-columns:repeat(2,minmax(0,1fr));display:grid;overflow-x:hidden}.product-workspace-tabs button{width:100%;min-width:0;display:grid}.product-workspace-tabs button span{white-space:nowrap;min-width:0}.product-workspace-tabs button svg:last-child{display:none}.product-workspace-config,.product-workspace-preview{border-left:0;padding:16px}.metric-editor-card__fields,.mapping-card__grid,.workspace-inline-form{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-editor-card__key,.mapping-card header,.preview-head,.preview-metric{align-items:flex-start}.metric-editor-card .ghost-button{width:100%}.mapping-card header{display:grid}.mapping-card header>span{max-width:100%}.login-screen{align-content:start}.login-aside{padding:14px}.login-aside__copy{display:none}.toolbar-field--search{flex:none}.device-pagination{flex-direction:column;align-items:stretch}.device-pagination>div,.device-pagination .ghost-button,.device-pagination__controls{width:100%}.device-pagination__controls{justify-content:center;margin-left:0}.device-pagination__controls .device-page-button--number:not(.is-active),.device-pagination__controls .device-page-ellipsis,.sidebar.ant-layout-sider{display:none}.mobile-navigation-drawer .ant-drawer-section,.mobile-navigation-drawer .ant-drawer-header,.mobile-navigation-drawer .sidebar-content{background:var(--sidebar)}.mobile-navigation-drawer .ant-drawer-section{overflow:hidden}.mobile-navigation-drawer .ant-drawer-header{color:#fff;border-bottom-color:#ffffff14}.mobile-navigation-drawer .ant-drawer-close{color:#ffffffdb}.mobile-navigation-drawer .ant-drawer-close:hover{color:#fff;background:#ffffff1f}.mobile-navigation-drawer .ant-drawer-body{min-height:0;padding:0;display:flex;overflow:hidden}.mobile-navigation-drawer .sidebar-content{flex:1;height:100%;min-height:0}.page-body.ant-layout-content,.page-body,.shell-header.ant-layout-header,.login-main,.login-panel{padding:14px}.login-main{place-items:start center;min-height:auto}.account-presets{grid-template-columns:1fr}.login-captcha{grid-template-columns:minmax(0,1fr) 116px;column-gap:8px}.invitation-link-row{grid-template-columns:1fr}.invitation-once__head{flex-direction:column-reverse;align-items:stretch}.filter-bar,.screen-toolbar,.screen-toolbar__actions,.panel-head,.detail-panel__header,.section-block__head,.inspector-header,.data-block__head,.message-row__head,.list-item__head,.panel-head__meta{flex-direction:column;align-items:stretch}.message-row{flex-shrink:0}.message-row__head{flex-direction:row;align-items:center}.message-row__title{flex:auto;min-width:0}.message-row__device{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.message-row__separator,.message-row__channel,.message-row__evidence,.message-row__direction,.message-row>.inline-error{display:none}.message-row__meta{white-space:nowrap;flex-wrap:nowrap;overflow:hidden}.message-row__payload{text-overflow:ellipsis;white-space:nowrap;word-break:normal;overflow:hidden}.debug-workspace-tabs,.debug-stream-toolbar{flex-direction:column;align-items:stretch}.debug-workspace-tabs .segment-control,.debug-workspace-tabs .segment-control button,.debug-session-tools .primary-button{width:100%}.debug-stream-toolbar__tools,.debug-composer__subscription{grid-template-columns:1fr}.debug-stream-table{overflow-x:hidden}.debug-stream-table__head{display:none}.debug-stream-table__body{width:100%;min-width:0}.debug-stream-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"time status""direction direction""endpoint endpoint""channel channel";gap:8px 12px;min-width:0;padding:12px}.debug-stream-time{grid-area:time}.debug-stream-status{grid-area:status;justify-self:end}.debug-stream-direction-protocol{grid-area:direction;overflow:visible}.debug-stream-endpoint,.debug-stream-channel{overflow-wrap:anywhere;white-space:normal;min-width:0;display:block;overflow:visible}.debug-stream-endpoint{grid-area:endpoint}.debug-stream-channel{grid-area:channel}.debug-stream-endpoint:before,.debug-stream-channel:before{min-width:80px;color:var(--text-muted);content:attr(data-label);margin-right:8px;font-size:11px;display:inline-block}.debug-inspector-tabs{grid-template-columns:repeat(6,minmax(0,1fr));min-height:auto;padding:0;display:grid;overflow:visible}.debug-inspector-tabs button{white-space:nowrap;grid-column:span 2;min-width:0;min-height:38px;padding:0 4px}.debug-inspector-tabs button:nth-child(4),.debug-inspector-tabs button:nth-child(5){grid-column:span 3}.receiver-sensor-grid{grid-template-columns:1fr}.toolbar-field,.toolbar-field--search,.ghost-button,.primary-button{width:100%}.device-filter-panel .filter-bar{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.device-filter-panel .toolbar-field,.device-filter-panel .ghost-button{width:auto;min-width:0}.device-filter-panel .toolbar-field--search,.device-filter-panel .device-refresh-button{grid-column:1/-1}.device-status-tabs{justify-content:space-between;gap:10px;padding-inline:4px}.device-list-panel{min-height:auto}.device-overview-table{min-width:0}.device-table thead{display:none}.device-table,.device-table tbody,.device-table tr,.device-table td{width:100%;display:block}.device-table tbody tr{border-top:1px solid var(--border-soft);gap:4px;padding:10px 12px;display:grid}.device-table tbody td{border:0;grid-template-columns:88px minmax(0,1fr);gap:8px;padding:5px 0;display:grid}.device-table tbody td[data-label=产品与应用]{display:none}.device-table tbody td:before{color:var(--text-muted);content:attr(data-label);font-size:12px}.device-detail-drawer .ant-drawer-content-wrapper{max-width:100vw;width:100%!important}.device-drawer-head,.device-drawer-state-head{padding:16px}.device-drawer-title__row{flex-direction:column;align-items:flex-start;gap:6px}.device-drawer-title h2{font-size:18px}.device-drawer-summary{margin:12px 16px 10px}.device-drawer-summary>div{padding:10px 8px}.device-drawer-summary strong{font-size:15px}.device-detail-tabs{gap:20px;padding-inline:16px}.device-drawer-scroll{padding:0 16px 18px}.device-fact-list>div{grid-template-columns:100px minmax(0,1fr)}.device-history-section .history-summary-grid{grid-template-columns:1fr}.alarm-summary-strip,.alarm-trend-panel .alarm-history-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.alarm-trend-panel .alarm-history-summary-grid{gap:8px}.alarm-trend-panel .empty-state--compact{min-height:0;padding:10px 0}.alarm-rule-list-panel .panel-head{flex-direction:row;align-items:center}.alarm-rule-drawer-trigger{width:auto}.alarm-rule-drawer .ant-drawer-content-wrapper{max-width:100vw;width:100%!important}.alarm-rule-drawer .ant-drawer-body{padding:16px}.alarm-rule-drawer-form .form-grid--2,.alarm-rule-drawer-form .form-grid--3{grid-template-columns:1fr}.user-governance-tabs{justify-content:space-between;gap:0}.user-governance-tabs button{flex:1;padding-inline:6px;font-size:13px}.user-filter-bar{grid-template-columns:1fr;display:grid}.user-filter-bar .toolbar-field,.user-filter-bar select{width:100%}.user-table-scroll,.invitation-table-scroll{overflow:visible}.user-table,.user-table tbody,.user-table tr,.user-table td,.invitation-table,.invitation-table tbody,.invitation-table tr,.invitation-table td{width:100%;min-width:0;display:block}.user-table thead{clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.invitation-table thead{display:none}.user-table tbody tr,.invitation-table tbody tr{border-top:1px solid var(--border-soft);gap:4px;padding:12px;display:grid}.user-table tbody td,.invitation-table tbody td{border:0;grid-template-columns:84px minmax(0,1fr);gap:8px;padding:4px 0;display:grid}.user-table tbody td:before,.invitation-table tbody td:before{content:attr(data-label);color:var(--text-muted);font-size:12px}.user-open-button,.invitation-table .ghost-button{width:100%}.governance-drawer .ant-drawer-content-wrapper{max-width:100vw;width:100%!important}.governance-drawer .ant-drawer-footer{background:var(--panel);position:sticky;bottom:0}.drawer-actions{grid-template-columns:1fr 1fr;display:grid}.drawer-actions .ghost-button,.drawer-actions .primary-button,.drawer-actions .danger-button,.invitation-create-button,.invitation-once .ghost-button{width:100%}button,button.ant-btn,.primary-button,.ghost-button,.danger-button,.product-delete-button,input:not([type=checkbox]):not([type=radio]),select{min-height:44px!important}.icon-button,button.ant-btn-icon-only,button.ant-drawer-close,button.device-page-button{width:44px;min-width:44px}.history-filters{flex-direction:column;gap:6px;padding:8px 10px;display:flex}.history-filters__row--primary,.history-filters__row--secondary{grid-template-columns:repeat(2,1fr)!important;gap:6px!important;width:100%!important;display:grid!important}.history-filters__secondary-badge{display:none!important}.history-filters .toolbar-field{width:100%!important;height:44px!important;min-height:44px!important;max-height:44px!important;box-shadow:none!important;background:0 0!important;border:none!important;margin:0!important;padding:0!important}.history-filters .toolbar-field--search,.history-filters .toolbar-field--range-picker{grid-column:1/-1!important}.history-filters .toolbar-field:not(.toolbar-field--range-picker) input,.history-filters .toolbar-field select,.history-filters .toolbar-field .ant-picker{width:100%!important;height:44px!important;min-height:44px!important;max-height:44px!important}.history-filters .toolbar-field--range-picker input{background:0 0!important;border:none!important;height:auto!important;min-height:0!important;max-height:none!important;padding:0!important}.history-filters__actions{grid-column:1/-1!important;justify-content:flex-end!important;align-items:center!important;gap:6px!important;width:100%!important;display:flex!important}.history-filters__actions .ghost-button,.history-filters>.ghost-button{width:auto!important;height:44px!important;min-height:44px!important}.history-pagination{flex-direction:column;align-items:stretch;gap:8px;padding:8px 10px}.history-pagination__status{justify-content:space-between;width:100%}.history-pagination__controls{justify-content:flex-end;width:100%}.history-pagination .ghost-button{min-height:44px}.ingress-history .panel-head{flex-wrap:wrap}}@media (width>=1200px){.alarm-filter-bar{grid-template-columns:minmax(180px,1.6fr) repeat(5,minmax(95px,.8fr)) max-content max-content;align-items:center;gap:8px;display:grid}.alarm-filter-bar .toolbar-field,.alarm-filter-bar .ghost-button{width:auto;min-width:0}.alarm-filter-bar .toolbar-field--search{min-width:0}}@media (width>=641px) and (width<=1199px){.alarm-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.alarm-filter-bar .toolbar-field--search{grid-column:1/-1}.alarm-filter-bar .panel-head__meta,.alarm-filter-bar .ghost-button{width:100%}}
