:root{color-scheme:dark;font-family:Microsoft YaHei UI,PingFang SC,Segoe UI,sans-serif;background:#090d14;color:#eef8ff;--panel: rgba(6, 22, 39, .9);--panel-soft: rgba(8, 31, 55, .72);--panel-strong: rgba(8, 38, 70, .95);--line: rgba(74, 165, 255, .18);--line-strong: rgba(85, 180, 255, .36);--text-muted: #8fa9bf;--accent: #2ca6ff;--accent-strong: #66c9ff;--gold: #ffc545;--danger: #ff5f6f;--ink: #eef8ff;--muted: #8fa9bf;--cyan: #2ca6ff;--teal: #56c6a9;--amber: #ffc545;--rose: #ff5f6f;--deep-0: #020812;--deep-1: #04111f;--deep-2: #08203a}*{box-sizing:border-box}body{margin:0;min-width:1180px;min-height:100vh;background:linear-gradient(180deg,#090d14,#0b111b 58%,#080c13);color:var(--ink)}body.app-fluid-shell,body.app-view-editor{min-width:0;overflow-x:hidden}body.app-view-eldercare{width:100vw;height:100dvh;min-width:0;min-height:100dvh;overflow:hidden;background:#020810}body.app-view-eldercare:before{display:none}body.published-screen-mode{width:100vw;height:100dvh;min-width:0;min-height:100dvh;overflow:hidden;background:#020812}body.published-screen-mode:before{display:none}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:linear-gradient(rgba(130,155,180,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(130,155,180,.028) 1px,transparent 1px);background-size:40px 40px;pointer-events:none}button,input,select,textarea{font:inherit;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.46}button:hover:not(:disabled){transform:translateY(-1px)}input,select,textarea{width:100%;border:1px solid rgba(81,159,231,.22);border-radius:6px;outline:none;background:#020e1bd1;color:#edf8ff;padding:9px 10px}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:#46b4ffb8;box-shadow:inset 0 0 0 1px #46b4ff57,0 0 18px #2ca6ff2e}.app-root,.manager-view,.editor-shell,.preview-shell{min-height:100vh}.boot-screen{display:grid;min-height:100vh;place-items:center}.boot-card,.brand,.dialog-title{display:flex;align-items:center;gap:12px}.boot-card{padding:22px 26px;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:0 18px 60px #00000052,inset 0 0 30px #2ca6ff0f}.brand strong,.dialog-title strong{display:block;font-size:18px}.brand span,.dialog-title span{display:block;color:var(--text-muted);font-size:12px;margin-top:3px}.brand.compact strong{font-size:16px}.brand-mark{display:grid;width:38px;height:38px;place-items:center;border:1px solid rgba(66,180,255,.62);border-radius:50%;background:radial-gradient(circle,#58c4ffe6,#084a88d9);color:#eef8ff;font-weight:800;box-shadow:0 0 22px #2ca6ff52,inset 0 0 14px #ffffff2e}.manager-view{padding:28px}.manager-header,.editor-toolbar,.preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(135deg,#08223ee0,#03101ee0),radial-gradient(circle at 8% 0%,rgba(45,169,255,.12),transparent 28%);box-shadow:inset 0 0 30px #2ca6ff0f,0 18px 54px #00000038;padding:16px 18px}.header-actions,.toolbar-actions,.dialog-actions{display:flex;align-items:center;gap:10px}.primary-button,.ghost-button,.danger-button,.dashboard-card-actions button,.component-item,.layer-panel button{border:1px solid rgba(78,168,246,.24);border-radius:6px;background:#071d34c7;color:#e8f6ff;padding:9px 12px;box-shadow:inset 0 0 18px #2ca6ff0a}.primary-button{border-color:#5fb3ff94;background:linear-gradient(180deg,#287ec8,#155b99);color:#f7fbff;font-weight:700;box-shadow:0 8px 22px #040c1847,inset 0 1px #ffffff38}.danger-button{width:100%;border-color:#ff5f6f66;color:#ffc8cf;background:#3d0f1985}.danger-text{color:#ffb0a8!important}.auth-chip,.status-pill{display:inline-flex;align-items:center;min-height:28px;border:1px solid rgba(78,168,246,.24);border-radius:6px;padding:3px 10px;color:var(--text-muted);font-size:12px;background:#05142494}.status-published{border-color:#5cee706b;color:#74ee84}.status-draft{border-color:#2ca6ff6b;color:#8bd5ff}.status-offline{border-color:#9d3d37;color:#ffb0a8}.city-tabs{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.template-library{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:18px 0}.template-card{border:1px solid var(--line);border-radius:8px;background:linear-gradient(135deg,#071e36db,#04111feb),radial-gradient(circle at 10% 0%,rgba(44,166,255,.13),transparent 28%);padding:14px;box-shadow:inset 0 0 28px #2ca6ff0d}.template-card span{color:var(--accent-strong);font-size:12px}.template-card strong{display:block;margin-top:5px}.template-card p{min-height:38px;color:var(--text-muted);font-size:12px;line-height:1.5}.template-card button,.layer-tools button,.button-row button{border:1px solid rgba(78,168,246,.24);border-radius:6px;background:#071d34c7;color:#e8f6ff;padding:7px 9px}.city-tabs button{border:1px solid rgba(78,168,246,.2);border-radius:6px;background:#04111fc7;color:var(--text-muted);padding:8px 13px}.city-tabs button.active{border-color:#53bcffad;color:#f6fbff;background:#105ba06b;box-shadow:0 0 16px #2ca6ff2e}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:18px}.dashboard-card,.create-card{min-height:310px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(135deg,#071e36db,#04111feb),radial-gradient(circle at 50% 0%,rgba(44,166,255,.1),transparent 38%);overflow:hidden;box-shadow:0 18px 54px #0003}.dashboard-card-preview{height:172px;padding:16px;background:radial-gradient(ellipse at 50% 30%,rgba(44,166,255,.12),transparent 42%),#020812}.dashboard-card-body{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px 8px}.dashboard-card-body strong{display:block;font-size:17px}.dashboard-card-body span:not(.status-pill){display:block;color:var(--text-muted);font-size:12px;margin-top:5px}.dashboard-card-actions{display:flex;flex-wrap:wrap;gap:8px;padding:10px 16px 16px}.dashboard-card-actions button{padding:7px 10px;color:#dff8ff}.create-card{display:grid;place-items:center;color:var(--text-muted);font-weight:700}.create-card span{display:block;font-size:42px;color:var(--accent)}.editor-shell{display:grid;grid-template-columns:280px minmax(0,1fr) 330px;background:#020812}.sidebar,.inspector{height:100vh;overflow:auto;border-right:1px solid var(--line);background:linear-gradient(180deg,#051526f5,#030d19f5),radial-gradient(circle at 50% 0%,rgba(44,166,255,.12),transparent 30%);padding:16px}.inspector{border-right:0;border-left:1px solid var(--line);min-width:0;overflow-x:hidden}.inspector fieldset,.inspector .field,.inspector .field-grid,.inspector .config-group,.inspector .asset-picker,.inspector .asset-grid{min-width:0;max-width:100%}.inspector .field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.inspector .field>input,.inspector .field>select,.inspector .field>textarea{min-width:0;width:100%;max-width:100%}.inspector .field-hint,.inspector .param-row code,.inspector .param-row span{overflow-wrap:anywhere;min-width:0}.editor-main,.preview-shell{min-width:0;min-height:100vh}.editor-toolbar,.preview-toolbar{height:72px;border-radius:0;border-left:0;border-right:0;border-top:0}.editor-toolbar>div,.preview-toolbar>div{display:flex;align-items:center;gap:10px}.panel-section{margin-top:20px}.panel-section h2{color:#eef8ff;font-size:13px;letter-spacing:0;margin:0 0 10px}.component-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}.component-item{display:flex;align-items:center;gap:8px;min-height:42px;text-align:left}.component-item .icon{display:grid;width:24px;height:24px;place-items:center;border-radius:50%;background:radial-gradient(circle,#4dbbff47,#07233fb3);color:#7fd0ff;font-weight:800;font-size:12px}.layer-panel{display:grid;gap:7px}.layer-tools,.button-row{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:8px}.layer-panel button{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;text-align:left}.layer-panel button>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer-panel button.active{border-color:#53bcffad;background:#105ba06b}.layer-panel small{display:inline-flex;align-items:center;gap:6px;color:var(--text-muted);white-space:nowrap}.layer-panel small em{max-width:76px;overflow:hidden;color:#7fd0ff;font-style:normal;text-overflow:ellipsis}.widget-identity-card{display:grid;gap:9px;margin-bottom:14px;border:1px solid rgba(83,188,255,.24);border-radius:10px;background:linear-gradient(135deg,#0a2e52d1,#051526c7),radial-gradient(circle at 12% 10%,rgba(83,188,255,.14),transparent 36%);padding:12px}.widget-identity-header{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.widget-identity-kicker{color:#9fb1c8;font-size:12px}.widget-identity-header strong{color:#f2fbff;font-size:18px}.widget-identity-card p{margin:0;color:#b9cadc;font-size:12px;line-height:1.5}.widget-identity-meta{display:flex;flex-wrap:wrap;gap:8px}.widget-identity-meta span,.widget-identity-variant{border:1px solid rgba(127,208,255,.2);border-radius:999px;background:#061b31bd;color:#b9cadc;font-size:12px;line-height:1;padding:7px 9px}.widget-identity-meta code{color:#7fd0ff;font-family:Cascadia Mono,Consolas,monospace}.widget-identity-variant{justify-self:start;color:#e6f6ff}.field{display:grid;gap:6px;margin-bottom:11px}.field>span{color:var(--text-muted);font-size:12px}.field-hint{color:#9fb1c8;font-size:12px;line-height:1.5}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.field-button{align-self:end;min-height:38px}.toggle-field{align-content:end}.toggle-field input{width:auto}.switch-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.switch-grid label{display:flex;align-items:center;gap:7px;color:var(--text-muted);font-size:13px}.switch-grid input{width:auto}.switch-grid.compact-switch{grid-template-columns:1fr}.empty-panel{display:grid;min-height:120px;place-items:center;border:1px dashed rgba(78,168,246,.24);border-radius:8px;color:var(--text-muted);text-align:center}.config-group{border:1px solid rgba(78,168,246,.2);border-radius:8px;margin:12px 0;padding:0 10px 10px;background:#0515269e}.config-group summary{cursor:pointer;color:#eef8ff;font-weight:700;padding:10px 0}.toggle-row{display:flex;align-items:center;gap:8px;color:var(--text-muted);font-size:13px;margin:8px 0 12px}.toggle-row input{width:auto}.code-textarea{font-family:Cascadia Mono,Consolas,monospace;font-size:12px;line-height:1.5}.echarts-workbench{border-color:#4ea8f642;background:#04111feb;padding:12px}.json-editor-button{margin-bottom:12px}.json-workbench-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:180;display:grid;place-items:center;padding:28px}.json-workbench-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#01050de0}.json-workbench-dialog{position:relative;z-index:1;width:min(1480px,calc(100vw - 56px));max-height:calc(100vh - 56px);overflow:auto;border:1px solid rgba(78,168,246,.28);border-radius:8px;background:#04111f;box-shadow:0 24px 80px #0000007a,inset 0 0 36px #2ca6ff0d}.echarts-workbench-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px;border-bottom:1px solid rgba(78,168,246,.2);padding-bottom:10px}.echarts-workbench-title strong{display:block;color:#eef8ff;font-size:15px}.echarts-workbench-title span{display:block;margin-top:4px;color:#9fb1c8;font-size:12px}.echarts-workbench-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px;border:1px solid rgba(78,168,246,.2);background:#051526bd;padding:10px}.echarts-workbench-head strong{display:block;color:#eef8ff;font-size:13px}.echarts-workbench-head span{display:block;margin-top:4px;color:#9fb1c8;font-size:12px;line-height:1.5}.echarts-workbench-grid{display:grid;grid-template-columns:minmax(420px,1.05fr) minmax(420px,1fr);gap:10px}.echarts-option-only-grid,.component-content-grid{grid-template-columns:minmax(400px,.88fr) minmax(520px,1.2fr);min-height:640px}.echarts-workbench-grid.no-chart-option{grid-template-columns:minmax(320px,1.05fr) minmax(320px,1fr) minmax(240px,.72fr)}.echarts-workbench-grid.no-chart-option .option-editor{min-height:62vh}.echarts-workbench-card{min-width:0;border:1px solid rgba(78,168,246,.2);border-radius:8px;background:#020f22bd;padding:10px}.workbench-card-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.workbench-card-title span{color:#8bd5ff;font-size:12px;font-weight:700}.workbench-card-title small{color:#8fb6cf;font-size:11px}.workbench-fieldset{border:0;margin:0;padding:0}.workbench-fieldset:disabled{opacity:.68}.option-editor{min-height:520px;max-height:62vh;resize:vertical;white-space:pre}.option-json-editor{width:100%;min-height:580px;max-height:68vh}.preview-column,.option-json-column{max-height:720px;overflow:auto}.compact-option-editor{min-height:280px;max-height:36vh}.option-column{max-height:620px;overflow:auto}.preview-title{margin-top:12px;border-top:1px solid rgba(78,168,246,.16);padding-top:10px}.workbench-empty{min-height:420px;display:flex;align-items:center;line-height:1.7}.json-template-row,.json-apply-row{margin-bottom:8px}.json-apply-row{margin-top:8px}.json-workbench-footer{display:flex;justify-content:flex-end;margin-top:12px;border-top:1px solid rgba(78,168,246,.18);padding-top:12px}.option-preview-shell{height:420px;border:1px solid rgba(78,168,246,.2);border-radius:8px;background:linear-gradient(#0b244a 1px,transparent 1px),linear-gradient(90deg,#0b244a 1px,transparent 1px),#020812;background-size:28px 28px}.live-preview-shell{height:580px}.echarts-option-preview{width:100%;height:100%}.component-preview-shell{height:580px;overflow:hidden;border:1px solid rgba(78,168,246,.2);border-radius:8px;background:linear-gradient(rgba(64,164,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(64,164,255,.05) 1px,transparent 1px),#020812;background-size:28px 28px;padding:18px}.chart-runtime-preview-shell{display:grid;align-items:center;justify-items:center;overflow:auto;contain:layout paint}.runtime-widget-preview{min-width:1px;min-height:1px;transform-origin:left top}.widget-preview-frame{display:flex;flex-direction:column;border:var(--widget-border-width, 1px) solid color-mix(in srgb,var(--widget-border) 72%,transparent);border-radius:var(--widget-radius, 8px);background:linear-gradient(135deg,color-mix(in srgb,var(--widget-bg) var(--widget-bg-alpha-percent, 92%),transparent),#04111fd6),radial-gradient(circle at 12% 8%,color-mix(in srgb,var(--widget-border) 18%,transparent),transparent 32%);background-size:cover;box-shadow:inset 0 0 0 1px #ffffff06,inset 0 0 28px color-mix(in srgb,var(--widget-border) 9%,transparent),0 calc(var(--widget-shadow, 0px) * .18) calc(var(--widget-shadow, 0px) * .7) #0000003d,0 0 calc(var(--widget-shadow, 0px) * .36) color-mix(in srgb,var(--widget-border) 26%,transparent);-webkit-backdrop-filter:blur(var(--widget-blur, 0px));backdrop-filter:blur(var(--widget-blur, 0px))}.widget-preview-frame:before{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:inherit;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--widget-border) 82%,transparent),transparent) 0 0 / 100% 1px no-repeat,linear-gradient(180deg,color-mix(in srgb,var(--widget-border) 12%,transparent),transparent 42%);pointer-events:none}.widget-preview-frame.border-none{border-color:transparent}.widget-preview-frame.border-dashed{border-style:dashed}.widget-preview-frame.border-double{border-style:double}.widget-preview-frame.widget-bg-none{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.widget-preview-frame.widget-bg-solid{background:color-mix(in srgb,var(--widget-bg) var(--widget-bg-alpha-percent, 0%),transparent)}.widget-preview-frame.widget-bg-softGradient{background:linear-gradient(135deg,color-mix(in srgb,var(--widget-bg) var(--widget-bg-alpha-percent, 0%),transparent),#0512222e),radial-gradient(circle at 16% 12%,color-mix(in srgb,var(--widget-border) 12%,transparent),transparent 38%)}.widget-preview-frame.widget-bg-glass{background:linear-gradient(145deg,color-mix(in srgb,var(--widget-bg) var(--widget-bg-alpha-percent, 0%),transparent),#ffffff09),linear-gradient(180deg,rgba(255,255,255,.045),transparent 42%);-webkit-backdrop-filter:blur(var(--widget-blur, 0px));backdrop-filter:blur(var(--widget-blur, 0px))}.widget-preview-frame.border-none,.widget-preview-frame.border-solid,.widget-preview-frame.border-dashed,.widget-preview-frame.border-double,.widget-preview-frame.border-corners,.widget-preview-frame.border-solidOutCorners,.widget-preview-frame.border-cutCorners,.widget-preview-frame.border-bracketCorners,.widget-preview-frame.border-doubleCorners,.widget-preview-frame.border-sideAccent,.widget-preview-frame.border-topBottom{border-color:color-mix(in srgb,var(--widget-border) 72%,transparent);box-shadow:0 calc(var(--widget-shadow, 0px) * .18) calc(var(--widget-shadow, 0px) * .7) #0003}.widget-preview-frame.border-none:before,.widget-preview-frame.border-solid:before,.widget-preview-frame.border-dashed:before,.widget-preview-frame.border-double:before,.widget-preview-frame.border-corners:before,.widget-preview-frame.border-solidOutCorners:before,.widget-preview-frame.border-cutCorners:before,.widget-preview-frame.border-bracketCorners:before,.widget-preview-frame.border-doubleCorners:before,.widget-preview-frame.border-sideAccent:before,.widget-preview-frame.border-topBottom:before{display:none}.widget-preview-frame.border-none{border:0!important;box-shadow:none}.widget-preview-frame.border-solid{border-style:solid}.widget-preview-frame.border-corners,.widget-preview-frame.border-solidOutCorners,.widget-preview-frame.border-cutCorners,.widget-preview-frame.border-bracketCorners,.widget-preview-frame.border-doubleCorners,.widget-preview-frame.border-sideAccent,.widget-preview-frame.border-topBottom{border:0!important}.widget-preview-frame.border-corners{box-shadow:none}.widget-preview-frame.border-corners:after,.widget-preview-frame.border-solidOutCorners:after,.widget-preview-frame.border-cutCorners:after,.widget-preview-frame.border-bracketCorners:after,.widget-preview-frame.border-doubleCorners:after,.widget-preview-frame.border-sideAccent:after,.widget-preview-frame.border-topBottom:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;border-radius:inherit;pointer-events:none}.widget-preview-frame.border-corners:after{--corner-size: clamp(14px, 18%, 34px);border:var(--widget-border-width, 1px) solid transparent;background:linear-gradient(var(--widget-border),var(--widget-border)) left top / var(--corner-size) var(--widget-border-width, 1px) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) left top / var(--widget-border-width, 1px) var(--corner-size) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) right top / var(--corner-size) var(--widget-border-width, 1px) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) right top / var(--widget-border-width, 1px) var(--corner-size) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) left bottom / var(--corner-size) var(--widget-border-width, 1px) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) left bottom / var(--widget-border-width, 1px) var(--corner-size) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) right bottom / var(--corner-size) var(--widget-border-width, 1px) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) right bottom / var(--widget-border-width, 1px) var(--corner-size) no-repeat;opacity:.82}.widget-preview-frame.border-solidOutCorners:after{--corner-size: clamp(18px, 17%, 42px);top:-6px;right:-6px;bottom:-6px;left:-6px;border:var(--widget-border-width, 1px) solid color-mix(in srgb,var(--widget-border) 60%,transparent);border-radius:calc(var(--widget-radius, 8px) + 6px);background:linear-gradient(var(--widget-border),var(--widget-border)) left top / var(--corner-size) var(--widget-border-width, 1px) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) left top / var(--widget-border-width, 1px) var(--corner-size) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) right top / var(--corner-size) var(--widget-border-width, 1px) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) right top / var(--widget-border-width, 1px) var(--corner-size) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) left bottom / var(--corner-size) var(--widget-border-width, 1px) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) left bottom / var(--widget-border-width, 1px) var(--corner-size) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) right bottom / var(--corner-size) var(--widget-border-width, 1px) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) right bottom / var(--widget-border-width, 1px) var(--corner-size) no-repeat;box-shadow:inset 0 0 18px color-mix(in srgb,var(--widget-border) 8%,transparent);opacity:.9}.widget-preview-frame.border-cutCorners:after{--corner-size: clamp(12px, 13%, 28px);top:7px;right:7px;bottom:7px;left:7px;background:linear-gradient(var(--widget-border),var(--widget-border)) left top / var(--corner-size) var(--widget-border-width, 1px) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) left top / var(--widget-border-width, 1px) var(--corner-size) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) right top / var(--corner-size) var(--widget-border-width, 1px) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) right top / var(--widget-border-width, 1px) var(--corner-size) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) left bottom / var(--corner-size) var(--widget-border-width, 1px) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) left bottom / var(--widget-border-width, 1px) var(--corner-size) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) right bottom / var(--corner-size) var(--widget-border-width, 1px) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) right bottom / var(--widget-border-width, 1px) var(--corner-size) no-repeat;opacity:.72}.widget-preview-frame.border-bracketCorners:after{--corner-size: clamp(24px, 16%, 52px);background:linear-gradient(var(--widget-border),var(--widget-border)) left top / var(--corner-size) var(--widget-border-width, 1px) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) left calc(var(--corner-size) * .42) top / calc(var(--corner-size) * .48) var(--widget-border-width, 1px) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) right top / var(--corner-size) var(--widget-border-width, 1px) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) right calc(var(--corner-size) * .42) top / calc(var(--corner-size) * .48) var(--widget-border-width, 1px) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) left bottom / var(--corner-size) var(--widget-border-width, 1px) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) left calc(var(--corner-size) * .42) bottom / calc(var(--corner-size) * .48) var(--widget-border-width, 1px) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) right bottom / var(--corner-size) var(--widget-border-width, 1px) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) right calc(var(--corner-size) * .42) bottom / calc(var(--corner-size) * .48) var(--widget-border-width, 1px) no-repeat;opacity:.82}.widget-preview-frame.border-doubleCorners:after{--corner-size: clamp(18px, 16%, 42px);background:linear-gradient(var(--widget-border),var(--widget-border)) left top / var(--corner-size) var(--widget-border-width, 1px) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) left top / var(--widget-border-width, 1px) var(--corner-size) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) right top / var(--corner-size) var(--widget-border-width, 1px) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) right top / var(--widget-border-width, 1px) var(--corner-size) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) left bottom / var(--corner-size) var(--widget-border-width, 1px) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) left bottom / var(--widget-border-width, 1px) var(--corner-size) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) right bottom / var(--corner-size) var(--widget-border-width, 1px) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) right bottom / var(--widget-border-width, 1px) var(--corner-size) no-repeat,linear-gradient(color-mix(in srgb,var(--widget-border) 52%,transparent),color-mix(in srgb,var(--widget-border) 52%,transparent)) 8px 8px / calc(var(--corner-size) * .58) var(--widget-border-width, 1px) no-repeat,linear-gradient(color-mix(in srgb,var(--widget-border) 52%,transparent),color-mix(in srgb,var(--widget-border) 52%,transparent)) 8px 8px / var(--widget-border-width, 1px) calc(var(--corner-size) * .58) no-repeat,linear-gradient(color-mix(in srgb,var(--widget-border) 52%,transparent),color-mix(in srgb,var(--widget-border) 52%,transparent)) right 8px top 8px / calc(var(--corner-size) * .58) var(--widget-border-width, 1px) no-repeat,linear-gradient(color-mix(in srgb,var(--widget-border) 52%,transparent),color-mix(in srgb,var(--widget-border) 52%,transparent)) right 8px top 8px / var(--widget-border-width, 1px) calc(var(--corner-size) * .58) no-repeat,linear-gradient(color-mix(in srgb,var(--widget-border) 52%,transparent),color-mix(in srgb,var(--widget-border) 52%,transparent)) left 8px bottom 8px / calc(var(--corner-size) * .58) var(--widget-border-width, 1px) no-repeat,linear-gradient(color-mix(in srgb,var(--widget-border) 52%,transparent),color-mix(in srgb,var(--widget-border) 52%,transparent)) left 8px bottom 8px / var(--widget-border-width, 1px) calc(var(--corner-size) * .58) no-repeat,linear-gradient(color-mix(in srgb,var(--widget-border) 52%,transparent),color-mix(in srgb,var(--widget-border) 52%,transparent)) right 8px bottom 8px / calc(var(--corner-size) * .58) var(--widget-border-width, 1px) no-repeat,linear-gradient(color-mix(in srgb,var(--widget-border) 52%,transparent),color-mix(in srgb,var(--widget-border) 52%,transparent)) right 8px bottom 8px / var(--widget-border-width, 1px) calc(var(--corner-size) * .58) no-repeat;filter:drop-shadow(0 0 10px color-mix(in srgb,var(--widget-border) 42%,transparent));opacity:.88}.widget-preview-frame.border-sideAccent:after{border:0;background:linear-gradient(var(--widget-border),var(--widget-border)) left center / max(var(--widget-border-width, 1px),3px) 100% no-repeat;opacity:.86}.widget-preview-frame.border-topBottom:after{border:0;background:linear-gradient(var(--widget-border),var(--widget-border)) left top / 100% var(--widget-border-width, 1px) no-repeat,linear-gradient(var(--widget-border),var(--widget-border)) left bottom / 100% var(--widget-border-width, 1px) no-repeat;opacity:.82}.widget-preview-frame .corner-frame{position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;z-index:5;border:0;opacity:var(--corner-frame-opacity, .82);pointer-events:none}.widget-preview-frame .corner-frame-top,.widget-preview-frame .corner-frame-bottom{clip-path:none;filter:none}.widget-preview-frame .corner-frame-top:before,.widget-preview-frame .corner-frame-top:after,.widget-preview-frame .corner-frame-bottom:before,.widget-preview-frame .corner-frame-bottom:after{content:"";position:absolute;width:calc(var(--corner-frame-width, 2px) * 12);height:calc(var(--corner-frame-width, 2px) * 12);border-color:var(--corner-frame-color);border-style:solid;filter:drop-shadow(0 0 8px color-mix(in srgb,var(--corner-frame-color) 54%,transparent))}.widget-preview-frame .corner-frame-top:before{top:0;left:0;border-width:var(--corner-frame-width, 2px) 0 0 var(--corner-frame-width, 2px)}.widget-preview-frame .corner-frame-top:after{top:0;right:0;border-width:var(--corner-frame-width, 2px) var(--corner-frame-width, 2px) 0 0}.widget-preview-frame .corner-frame-bottom:before{bottom:0;left:0;border-width:0 0 var(--corner-frame-width, 2px) var(--corner-frame-width, 2px)}.widget-preview-frame .corner-frame-bottom:after{right:0;bottom:0;border-width:0 var(--corner-frame-width, 2px) var(--corner-frame-width, 2px) 0}.widget-preview-frame.corner-frame-style-solidOut .corner-frame{inset:calc(var(--corner-frame-bleed, 6px) * -1)}.widget-preview-frame.corner-frame-style-solidOut .corner-frame-top{border:var(--corner-frame-width, 2px) solid color-mix(in srgb,var(--corner-frame-color) 62%,transparent);border-radius:calc(var(--widget-radius, 8px) + var(--corner-frame-bleed, 6px));box-shadow:inset 0 0 18px color-mix(in srgb,var(--corner-frame-color) 8%,transparent)}.widget-preview-frame.corner-frame-style-solidOut .corner-frame-top:before,.widget-preview-frame.corner-frame-style-solidOut .corner-frame-top:after,.widget-preview-frame.corner-frame-style-solidOut .corner-frame-bottom:before,.widget-preview-frame.corner-frame-style-solidOut .corner-frame-bottom:after{width:calc(var(--corner-frame-width, 2px) * 15);height:calc(var(--corner-frame-width, 2px) * 15);filter:drop-shadow(0 0 10px color-mix(in srgb,var(--corner-frame-color) 68%,transparent))}.widget-preview-frame.corner-frame-style-innerCut .corner-frame{top:8px;right:8px;bottom:8px;left:8px;opacity:calc(var(--corner-frame-opacity, .82) * .86)}.widget-preview-frame.corner-frame-style-innerCut .corner-frame-top:before,.widget-preview-frame.corner-frame-style-innerCut .corner-frame-top:after,.widget-preview-frame.corner-frame-style-innerCut .corner-frame-bottom:before,.widget-preview-frame.corner-frame-style-innerCut .corner-frame-bottom:after{width:calc(var(--corner-frame-width, 2px) * 10);height:calc(var(--corner-frame-width, 2px) * 10);filter:none}.widget-preview-frame.corner-frame-style-edgeTicks .corner-frame-top:before,.widget-preview-frame.corner-frame-style-edgeTicks .corner-frame-top:after,.widget-preview-frame.corner-frame-style-edgeTicks .corner-frame-bottom:before,.widget-preview-frame.corner-frame-style-edgeTicks .corner-frame-bottom:after{width:calc(var(--corner-frame-width, 2px) * 22);height:calc(var(--corner-frame-width, 2px) * 5);border:0;background:linear-gradient(var(--corner-frame-color),var(--corner-frame-color)) left top / 100% var(--corner-frame-width, 2px) no-repeat,linear-gradient(var(--corner-frame-color),var(--corner-frame-color)) left bottom / 48% var(--corner-frame-width, 2px) no-repeat}.widget-preview-frame.corner-frame-style-edgeTicks .corner-frame-top:after,.widget-preview-frame.corner-frame-style-edgeTicks .corner-frame-bottom:after{transform:scaleX(-1)}.widget-preview-frame.corner-frame-style-doubleGlow .corner-frame{top:-2px;right:-2px;bottom:-2px;left:-2px}.widget-preview-frame.corner-frame-style-doubleGlow .corner-frame-top:before,.widget-preview-frame.corner-frame-style-doubleGlow .corner-frame-top:after,.widget-preview-frame.corner-frame-style-doubleGlow .corner-frame-bottom:before,.widget-preview-frame.corner-frame-style-doubleGlow .corner-frame-bottom:after{width:calc(var(--corner-frame-width, 2px) * 14);height:calc(var(--corner-frame-width, 2px) * 14);border-style:double;border-width:calc(var(--corner-frame-width, 2px) * 2);filter:drop-shadow(0 0 7px color-mix(in srgb,var(--corner-frame-color) 70%,transparent)) drop-shadow(0 0 16px color-mix(in srgb,var(--corner-frame-color) 34%,transparent))}.widget-preview-frame.hide-corner-frame .corner-frame{display:none}.widget-preview-frame.theme-workOrderOps.variant-workOrderPanel,.widget-preview-frame.theme-workOrderOps.variant-workOrderTable,.widget-preview-frame.theme-workOrderOps.variant-workOrderKpi{border-color:color-mix(in srgb,var(--widget-border) 86%,transparent);background:linear-gradient(135deg,color-mix(in srgb,var(--widget-bg) var(--widget-bg-alpha-percent, 34%),transparent),#050d2629),radial-gradient(ellipse at 50% 0%,color-mix(in srgb,var(--widget-border) 12%,transparent),transparent 62%)!important;box-shadow:inset 0 0 0 1px #59c9ff0f,0 0 14px #289cff14}.widget-preview-chrome,.widget-preview-body{position:relative;z-index:2}.widget-preview-chrome{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:42px;border-bottom:1px solid rgba(78,168,246,.16);padding:0 14px}.widget-preview-chrome strong{color:#eef8ff;font-size:15px}.widget-preview-chrome span{color:#8fb6cf;font-size:12px}.widget-preview-body{flex:1;min-height:0;padding:12px}.widget-preview-frame.widget-headline .widget-preview-body,.widget-preview-frame.widget-divider .widget-preview-body,.widget-preview-frame.widget-dataCollectionDashboard .widget-preview-body,.widget-preview-frame.widget-dataLifecycleDashboard .widget-preview-body,.widget-preview-frame.widget-capabilityPanorama .widget-preview-body{padding:0}.widget-preview-frame.theme-workOrderOps.variant-workOrderPanel .widget-preview-chrome,.widget-preview-frame.theme-workOrderOps.variant-workOrderTable .widget-preview-chrome{justify-content:flex-start;min-height:58px;border-bottom:0;background:transparent;padding:0 22px}.widget-preview-frame.theme-workOrderOps.variant-workOrderPanel .widget-preview-chrome strong,.widget-preview-frame.theme-workOrderOps.variant-workOrderTable .widget-preview-chrome strong{display:inline-flex;min-width:188px;min-height:42px;align-items:center;border-left:4px solid rgba(47,226,255,.9);background:linear-gradient(90deg,#0c4e8dd1,#0723584d);color:#f2fbff;font-size:24px;font-weight:800;letter-spacing:0;padding:0 18px}.widget-preview-frame.theme-workOrderOps.variant-workOrderPanel .widget-preview-chrome strong:before,.widget-preview-frame.theme-workOrderOps.variant-workOrderTable .widget-preview-chrome strong:before{content:"";width:0;height:0;margin-right:9px;border-bottom:9px solid transparent;border-left:12px solid #2aeaff;filter:drop-shadow(0 0 10px rgba(42,234,255,.68))}.widget-preview-frame.theme-workOrderOps.variant-workOrderPanel .widget-preview-chrome span,.widget-preview-frame.theme-workOrderOps.variant-workOrderTable .widget-preview-chrome span{color:#aebbd0;font-size:12px}.widget-preview-frame.theme-workOrderOps.variant-workOrderPanel .widget-preview-body,.widget-preview-frame.theme-workOrderOps.variant-workOrderTable .widget-preview-body{padding:8px 22px 20px}.widget-preview-frame.theme-workOrderOps.variant-workOrderKpi .widget-preview-body{display:grid;place-items:center;padding:0}.widget-preview-frame.theme-workOrderOps.variant-workOrderPanel.border-corners:after,.widget-preview-frame.theme-workOrderOps.variant-workOrderTable.border-corners:after,.widget-preview-frame.theme-workOrderOps.variant-workOrderKpi.border-corners:after{--corner-size: clamp(24px, 14%, 58px);opacity:.96}.widget-preview-type{position:absolute;right:10px;bottom:10px;z-index:5;border:1px solid rgba(83,188,255,.34);border-radius:999px;background:#04111fd6;color:#eaf8ffc7;font-size:11px;line-height:1;padding:6px 9px;pointer-events:none}.json-error{color:#ffb0a8;font-size:12px;line-height:1.5}.hidden-input{display:none}.wide-button{width:100%}.test-output{max-height:220px;overflow:auto;border:1px solid rgba(78,168,246,.2);border-radius:8px;background:#020a16c7;color:#e5edf8;font-size:12px;line-height:1.5;padding:10px;white-space:pre-wrap}.kv-editor{display:grid;gap:7px}.kv-row{display:grid;grid-template-columns:1fr 1fr auto;gap:6px}.kv-row button{border:1px solid #9d3d37;border-radius:2px;background:#31141b;color:#ffd8d2}.source-preview-table{width:100%;margin-top:10px;border-collapse:collapse;color:#dff8ff;font-size:12px}.source-preview-table th,.source-preview-table td{max-width:96px;overflow:hidden;border-bottom:1px solid rgba(78,168,246,.16);padding:7px 5px;text-overflow:ellipsis;white-space:nowrap}.source-preview-table th{color:var(--accent-strong);text-align:left}.camera-editor{display:grid;gap:8px}.camera-row{display:grid;grid-template-columns:.8fr 1.4fr .8fr 1.4fr auto;gap:6px}.camera-row button{border:1px solid #9d3d37;border-radius:2px;background:#31141b;color:#ffd8d2}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;background:#01050de0}.login-dialog{width:360px;border:1px solid var(--line);border-radius:8px;background:#04111f;padding:20px;box-shadow:0 24px 80px #0000007a,inset 0 0 36px #2ca6ff0d}.dialog-title{margin-bottom:18px}.form-error{border:1px solid rgba(255,95,111,.4);border-radius:8px;background:#3d0f1985;color:#ffd8d2;padding:9px 10px}.toast{position:fixed;right:20px;bottom:20px;z-index:120;max-width:420px;border:1px solid rgba(83,188,255,.4);border-radius:8px;background:#04111f;color:#dff2ff;padding:12px 14px}
