@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:block))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){:root,:host{--shimmer-angle:20deg}*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0;--scroll-fade-t:0px;--scroll-fade-b:0px;--scroll-fade-s:0px;--scroll-fade-e:0px;--scroll-fade-mask:initial;--shimmer-image:initial;--shimmer-text-fill:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-medium:500;--radius-md:.375rem;--radius-lg:.5rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.absolute{position:absolute}.static{position:static}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.grid{display:grid}.inline-flex{display:inline-flex}.table{display:table}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x, ) var(--tw-rotate-y, ) var(--tw-rotate-z, ) var(--tw-skew-x, ) var(--tw-skew-y, )}.resize{resize:both}.items-center{align-items:center}.justify-center{justify-content:center}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.rounded-\[min\(var\(--radius-md\)\,10px\)\]{border-radius:min(var(--radius-md), 10px)}.rounded-\[min\(var\(--radius-md\)\,12px\)\]{border-radius:min(var(--radius-md), 12px)}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-transparent{border-color:#0000}.bg-clip-padding{background-clip:padding-box}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.8rem\]{font-size:.8rem}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.whitespace-nowrap{white-space:nowrap}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, )}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.running{animation-play-state:running}@media (hover:hover){.hover\:underline:hover{text-decoration-line:underline}}.focus-visible\:ring-3:focus-visible{--tw-ring-shadow:var(--tw-ring-inset, ) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.active\:not-aria-\[haspopup\]\:translate-y-px:active:not([aria-haspopup]){--tw-translate-y:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}:where([data-slot=button-group]) .in-data-\[slot\=button-group\]\:rounded-lg{border-radius:var(--radius-lg)}.has-data-\[icon\=inline-end\]\:pr-1\.5:has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 1.5)}.has-data-\[icon\=inline-end\]\:pr-2:has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 2)}.has-data-\[icon\=inline-start\]\:pl-1\.5:has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 1.5)}.has-data-\[icon\=inline-start\]\:pl-2:has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 2)}.aria-invalid\:ring-3[aria-invalid=true]{--tw-ring-shadow:var(--tw-ring-inset, ) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5 svg:not([class*=size-]){width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@property --scroll-fade-t{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-b{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-s{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-e{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-mask{syntax:"*";inherits:false}@property --shimmer-angle{syntax:"<angle>";inherits:true;initial-value:20deg}@property --shimmer-image{syntax:"*";inherits:false}@property --shimmer-text-fill{syntax:"*";inherits:false}@media (prefers-reduced-motion:reduce){.shimmer{-webkit-text-fill-color:currentColor;background-image:none;animation:none}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f7fa;--nav:#0b1f3a;--nav-2:#122a4a;--card:#fff;--card-2:#f8fafc;--line:#0f172a14;--line-strong:#0f172a1f;--blue:#1d4ed8;--cyan:#06b6d4;--green:#10b981;--amber:#f59e0b;--red:#ef4444;--text:#0f172a;--text-2:#475569;--text-3:#94a3b8;--nav-text:#c7d7ef;--nav-text-2:#8ba3c7;--radius:12px;--font-cn:"Noto Sans SC Variable", "PingFang SC", "Microsoft YaHei", "Microsoft YaHei UI", Arial, sans-serif;--font-sans:"Inter Variable", "Inter", Arial, var(--font-cn);--font-num:"Inter Variable", "Inter", Arial, sans-serif;--nav-w:232px;--shadow-sm:0 1px 2px #0f172a0a;--shadow-md:0 8px 24px #0f172a0f}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;margin:0}body{color:var(--text);font-family:var(--font-sans);font-feature-settings:"cv11", "ss01";font-size:13px;font-weight:400;line-height:1.5}button,input{font:inherit;color:inherit}button{cursor:pointer;text-align:left;background:0 0;border:0;padding:0}h1,h2,h3,h4,p,ul{margin:0;padding:0}ul{list-style:none}::selection{background:#2563eb2e}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:8px}::-webkit-scrollbar-track{background:0 0}.num{font-family:var(--font-num);font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.c-blue{color:var(--blue)}.c-green{color:var(--green)}.dot{background:var(--text-3);border-radius:50%;flex:none;width:7px;height:7px;display:inline-block}.dot-green{background:var(--green);box-shadow:0 0 0 3px #10b98126}.dot-amber{background:var(--amber);box-shadow:0 0 0 3px #f59e0b26}.dot-red{background:var(--red);box-shadow:0 0 0 3px #ef444426}.dot-blue{background:var(--blue)}.dot.pulse{animation:2.4s ease-in-out infinite dotPulse}@keyframes dotPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.15)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes growX{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes growY{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes slideIn{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:none}}.app{background:radial-gradient(900px 420px at 12% -8%, #1d4ed812, transparent 55%), radial-gradient(700px 380px at 92% 8%, #06b6d40f, transparent 50%), linear-gradient(180deg, #f8fbfe 0%, var(--bg) 40%, #eef2f7 100%);min-height:100vh;display:flex}.sidebar{z-index:30;flex-direction:column;flex:0 0 var(--nav-w);width:var(--nav-w);background:linear-gradient(180deg, #0d2748 0%, var(--nav) 42%, #09182e 100%);border-right:1px solid #ffffff0f;height:100vh;padding:16px 12px 12px;transition:width .25s,flex-basis .25s;display:flex;position:sticky;top:0;overflow:hidden;box-shadow:8px 0 24px #09182e2e}.brand{align-items:center;gap:10px;width:100%;height:40px;margin-bottom:14px;padding:0 4px;display:flex}.brand-mark{color:#fff;background:linear-gradient(135deg,#1d4ed8,#06b6d4);border-radius:10px;flex:0 0 36px;place-items:center;width:36px;height:36px;display:grid;box-shadow:0 8px 18px #1d4ed859}.brand-copy{white-space:nowrap;flex-direction:column;min-width:0;display:flex}.brand-copy strong{letter-spacing:.2px;color:#fff;font-size:13.5px;font-weight:600}.brand-copy span{color:#7dd3fc;letter-spacing:1.2px;opacity:.85;margin-top:1px;font-size:9.5px;font-weight:500}.side-status{white-space:nowrap;background:#10b9811f;border:1px solid #10b98147;border-radius:8px;align-items:center;gap:8px;height:34px;margin-bottom:14px;padding:0 10px;display:flex}.side-status-text{color:#6ee7b7;font-size:12px;font-weight:500}.side-status-meta{color:var(--nav-text-2);margin-left:auto;font-size:11px}.side-nav,.side-bottom{flex-direction:column;gap:2px;display:flex}.side-nav{flex:1;padding-right:2px;overflow:auto}.side-bottom{border-top:1px solid #ffffff14;margin-top:auto;padding-top:10px}.side-item{height:40px;color:var(--nav-text);white-space:nowrap;border-radius:8px;align-items:center;gap:12px;width:100%;padding:0 12px;font-size:13.5px;transition:background .2s,color .2s;display:flex;position:relative}.side-item svg{color:var(--nav-text-2);flex:none}.side-item:hover{color:#fff;background:#3880ff24}.side-item:hover svg{color:#93c5fd}.side-item.active{color:#fff;background:linear-gradient(90deg,#2563eb61,#2563eb14);font-weight:600}.side-item.active:before{content:"";background:#38bdf8;border-radius:0 3px 3px 0;width:3px;position:absolute;top:9px;bottom:9px;left:0}.side-item.active svg{color:#7dd3fc}.side-badge{color:#fecaca;text-align:center;background:#ef444447;border-radius:10px;min-width:20px;margin-left:auto;padding:1px 6px;font-size:11px;font-weight:600}.side-collapse{height:36px;color:var(--nav-text-2);white-space:nowrap;align-items:center;gap:12px;width:100%;padding:0 12px;font-size:12px;display:flex}.side-collapse svg{transition:transform .25s}.side-collapse:hover{color:var(--nav-text)}.side-group{flex-direction:column;display:flex}.side-caret{color:var(--nav-text-2);margin-left:auto;transition:transform .2s}.side-group.open .side-caret{transform:rotate(180deg)}.side-sub{flex-direction:column;gap:1px;margin:2px 0 6px;padding-left:22px;display:flex;position:relative}.side-sub:before{content:"";background:#94a3b847;width:1px;position:absolute;top:4px;bottom:4px;left:20px}.side-sub-item{height:32px;color:var(--nav-text-2);white-space:nowrap;border-radius:6px;align-items:center;gap:9px;width:100%;padding:0 10px 0 14px;font-size:12.5px;display:flex;position:relative}.side-sub-item:hover{color:#fff;background:#3880ff24}.side-sub-item.on{color:#7dd3fc;background:#3880ff33;font-weight:600}.nav-collapsed{--nav-w:72px}.nav-collapsed .brand-copy,.nav-collapsed .side-label,.nav-collapsed .side-badge,.nav-collapsed .side-status-text,.nav-collapsed .side-status-meta,.nav-collapsed .side-caret{display:none}.nav-collapsed .side-status,.nav-collapsed .side-item,.nav-collapsed .side-collapse{justify-content:center;padding:0}.nav-collapsed .side-collapse svg{transform:rotate(180deg)}.nav-collapsed .side-sub{display:none}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);background:#ffffffe0;align-items:center;gap:18px;height:64px;padding:0 24px;display:flex;position:sticky;top:0}.org-picker{height:40px;color:var(--text-2);border:1px solid var(--line);background:#fff;border-radius:10px;align-items:center;gap:10px;padding:0 12px 0 6px;display:flex}.org-picker:hover{border-color:#2563eb59}.org-avatar,.account-avatar{color:#fff;background:linear-gradient(140deg,#2563eb,#0ea5e9);flex:none;place-items:center;font-weight:600;display:grid}.org-avatar{border-radius:8px;width:28px;height:28px;font-size:13px}.org-text,.account-text{white-space:nowrap;flex-direction:column;line-height:1.3;display:flex}.org-text strong,.account-text strong{color:var(--text);font-size:13px;font-weight:600}.org-text small,.account-text small{color:var(--text-3);font-size:11px}.global-search{height:36px;color:var(--text-3);background:#f1f5f9;border:1px solid #0000;border-radius:10px;flex:0 400px;align-items:center;gap:8px;padding:0 10px 0 12px;transition:border-color .2s,background .2s;display:flex}.global-search:focus-within{background:#fff;border-color:#2563eb66;box-shadow:0 0 0 3px #2563eb14}.global-search input{min-width:0;color:var(--text);background:0 0;border:0;outline:0;flex:1;font-size:13px}.global-search input::placeholder{color:var(--text-3)}.global-search kbd{color:var(--text-3);font-family:var(--font-num);border:1px solid var(--line-strong);background:#fff;border-radius:4px;padding:1px 6px;font-size:11px}.topbar-right{align-items:center;gap:16px;margin-left:auto;display:flex}.run-state{border-right:1px solid var(--line);align-items:center;gap:14px;padding-right:16px;display:flex}.run-item{color:var(--text-2);white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:flex}.icon-btn{width:36px;height:36px;color:var(--text-2);border-radius:10px;place-items:center;transition:background .2s,color .2s;display:grid;position:relative}.icon-btn:hover{color:var(--text);background:#2563eb14}.icon-badge{color:#fff;text-align:center;background:var(--red);border-radius:8px;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:600;line-height:16px;position:absolute;top:3px;right:2px}.account{color:var(--text-3);align-items:center;gap:10px;display:flex;position:relative}.account-trigger{color:inherit;align-items:center;gap:10px;display:flex}.account-avatar{border-radius:50%;width:32px;height:32px;font-size:13px}.account-menu{z-index:40;border:1px solid var(--line);min-width:140px;box-shadow:var(--shadow-md);background:#fff;border-radius:10px;padding:6px;position:absolute;top:calc(100% + 8px);right:0}.account-menu button{width:100%;color:var(--text);border-radius:8px;padding:8px 10px;font-size:13px;display:block}.account-menu button:hover{background:#f1f5f9}.content{width:100%;max-width:2400px;margin:0 auto;padding:0 24px 24px}.page-header{justify-content:space-between;align-items:center;gap:20px;min-height:76px;padding:12px 0 16px;display:flex}.page-en{color:var(--blue);letter-spacing:2px;opacity:.85;font-size:11px;font-weight:600}.page-heading h1{letter-spacing:.3px;margin-top:2px;font-size:24px;font-weight:700;line-height:1.25}.page-heading p{color:var(--text-2);flex-wrap:wrap;align-items:center;gap:10px;margin-top:4px;font-size:13px;display:flex}.role-tag{height:22px;color:var(--blue);background:#2563eb14;border-radius:999px;align-items:center;padding:0 8px;font-size:11.5px;font-weight:500;display:inline-flex}.page-header-right{align-items:center;gap:10px;display:flex}.sync-state,.clock{flex-direction:column;line-height:1.35;display:flex}.sync-state{border-right:1px solid var(--line);align-items:flex-end;padding-right:14px}.sync-live{color:var(--green);align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.sync-meta,.clock span{color:var(--text-3);font-size:12px}.clock{padding:0 10px 0 4px}.clock b{letter-spacing:.5px;font-size:20px;font-weight:700}.dropdown{position:relative}.dropdown-menu{z-index:40;border:1px solid var(--line);min-width:240px;box-shadow:var(--shadow-md);background:#fff;border-radius:12px;padding:10px;animation:.2s fadeIn;position:absolute;top:calc(100% + 8px);right:0}.role-menu strong{color:var(--text-2);border-bottom:1px solid var(--line);margin-bottom:8px;padding-bottom:8px;font-size:12px;display:block}.role-menu button{border-radius:8px;flex-direction:column;gap:2px;width:100%;padding:8px 10px;display:flex}.role-menu button:hover{background:#2563eb0f}.role-menu button.on{background:#2563eb1a}.role-menu button b{font-size:13px;font-weight:600}.role-menu button small{color:var(--text-3);font-size:11px}.btn{white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:6px;height:34px;padding:0 14px;font-size:13px;font-weight:500;transition:all .2s;display:inline-flex}.btn-ghost{color:var(--text-2);border:1px solid var(--line-strong);background:#fff}.btn-ghost:hover{color:var(--text);border-color:#2563eb59;box-shadow:0 0 0 3px #2563eb0f}.btn-primary{color:#fff;background:linear-gradient(#3b82f6,#2563eb);box-shadow:0 6px 14px #2563eb40}.btn-primary:hover{filter:brightness(1.04)}.btn-danger{color:#fff;background:linear-gradient(#f87171,#ef4444);box-shadow:0 6px 14px #ef444438}.btn-xs{border-radius:6px;height:26px;padding:0 10px;font-size:12px}.link-btn{color:var(--text-2);white-space:nowrap;align-items:center;gap:2px;font-size:12px;font-weight:500;display:inline-flex}.link-btn:hover{color:var(--blue)}.chip-btn{height:26px;color:var(--text-2);white-space:nowrap;border:1px solid var(--line-strong);background:#fff;border-radius:6px;align-items:center;gap:5px;padding:0 9px;font-size:12px;display:inline-flex}.chip-btn:hover{color:var(--blue);border-color:#2563eb59}.segmented{border:1px solid var(--line);background:#f1f5f9;border-radius:8px;gap:2px;padding:2px;display:inline-flex}.segmented button{height:24px;color:var(--text-3);white-space:nowrap;border-radius:6px;padding:0 10px;font-size:12px;font-weight:500}.segmented button:hover{color:var(--text-2)}.segmented button.on{color:var(--blue);box-shadow:var(--shadow-sm);background:#fff}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);min-width:0;box-shadow:var(--shadow-sm);padding:16px 18px;animation:.35s fadeIn;position:relative}.panel-head{justify-content:space-between;align-items:center;gap:10px;min-height:28px;margin-bottom:14px;display:flex}.panel-title{align-items:center;gap:8px;min-width:0;display:flex}.panel-title-mark{background:linear-gradient(180deg, var(--blue), var(--cyan));border-radius:2px;width:3px;height:14px}.panel-title h3{white-space:nowrap;font-size:15px;font-weight:650}.panel-en{color:var(--text-3);font-family:var(--font-num);letter-spacing:1px;white-space:nowrap;font-size:10.5px;font-weight:600}.panel-head-right{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.sub-title{color:var(--text-3);margin:14px 0 8px;font-size:12px;font-weight:600}.hint{color:var(--text-3);margin-top:12px;font-size:11.5px}.status{white-space:nowrap;border-radius:4px;padding:1px 7px;font-size:11px;font-weight:600}.st-待确认,.st-待处理,.st-待接单,.st-超时,.st-逾期,.st-异常,.st-故障,.st-告警{color:var(--red);background:#ef44441a}.st-处理中,.st-结算中,.st-待办理,.st-待签约,.st-运行,.st-开启{color:var(--blue);background:#1d4ed81a}.st-待复核,.st-外出中,.st-待执行,.st-离线,.st-停机,.st-关闭,.st-预警{color:var(--amber);background:#f59e0b1f}.st-已预约,.st-已完成,.st-正常{color:var(--green);background:#10b9811a}.level-tag{white-space:nowrap;border:1px solid;border-radius:4px;padding:0 6px;font-size:11px;font-weight:600;line-height:18px;display:inline-block}.level-tag.lv-urgent{color:var(--red);background:#ef444414;border-color:#ef444466}.level-tag.lv-important{color:#b45309;background:#f59e0b1a;border-color:#f59e0b73}.level-tag.lv-normal{color:var(--blue);background:#2563eb14;border-color:#2563eb59}.bar-list{flex-direction:column;gap:10px;display:flex}.bar-row{grid-template-columns:72px 1fr 42px 52px;align-items:center;gap:10px;font-size:12.5px;display:grid}.bar-label{color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.bar-row b{text-align:right;font-size:13px;font-weight:600}.bar-row em{color:var(--text-3);text-align:right;font-size:11.5px;font-style:normal}.bar-track{background:#e8eef5;border-radius:4px;height:7px;position:relative;overflow:hidden}.bar-track i{border-radius:inherit;transform-origin:0;height:100%;transition:width .6s cubic-bezier(.2,.8,.2,1);animation:.8s cubic-bezier(.2,.8,.2,1) growX;display:block}.donut{flex:none;position:relative}.donut svg{width:100%;height:100%;display:block}.donut-center{flex-direction:column;justify-content:center;align-items:center;line-height:1.2;display:flex;position:absolute;inset:0}.donut-center b{font-size:22px;font-weight:700}.donut-center span{color:var(--text-3);font-size:11px}.chart-wrap{margin-top:8px;position:relative}.chart-svg{width:100%;height:auto;display:block;overflow:visible}.grid-line{stroke:#94a3b859;stroke-dasharray:2 4}.axis-text{fill:var(--text-3);font-family:var(--font-num);font-size:10.5px}.hover-line{stroke:#2563eb59;stroke-dasharray:3 3}.chart-series{animation:.6s ease-out fadeIn}.bar-rise{transform-box:fill-box;transform-origin:bottom;animation:.7s cubic-bezier(.2,.8,.2,1) growY}.chart-tip{z-index:3;pointer-events:none;min-width:120px;box-shadow:var(--shadow-md);background:#fff;border:1px solid #2563eb33;border-radius:8px;padding:8px 10px;position:absolute;top:0;transform:translate(-50%)}.chart-tip strong{font-family:var(--font-num);margin-bottom:3px;font-size:12px;font-weight:600;display:block}.chart-tip span{color:var(--text-2);align-items:center;gap:6px;font-size:12px;display:flex}.chart-tip i{border-radius:2px;width:7px;height:7px}.chart-tip b{color:var(--text);margin-left:auto;padding-left:10px;font-weight:700}.legend{gap:14px;margin-bottom:4px;display:flex}.legend span{color:var(--text-2);white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:flex}.legend i{border-radius:2px;width:8px;height:8px}.kpi-matrix{grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin-bottom:16px;display:grid}.kpi-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:14px 16px 12px;transition:transform .2s,box-shadow .2s,border-color .2s;animation:.35s fadeIn;position:relative;overflow:hidden}.kpi-card:after{content:"";opacity:.35;background:linear-gradient(90deg,#0000,currentColor,#0000);height:3px;position:absolute;bottom:0;left:0;right:0}.kpi-card.tone-blue{color:var(--blue)}.kpi-card.tone-cyan{color:var(--cyan)}.kpi-card.tone-green{color:var(--green)}.kpi-card.tone-amber{color:var(--amber)}.kpi-card.tone-red{color:var(--red)}.kpi-card:hover{box-shadow:var(--shadow-md);border-color:#2563eb33;transform:translateY(-2px)}.kpi-head{align-items:center;gap:8px;margin-bottom:8px;display:flex}.kpi-icon{background:#2563eb14;border-radius:8px;place-items:center;width:28px;height:28px;display:grid}.kpi-card.tone-green .kpi-icon{background:#10b9811a}.kpi-card.tone-amber .kpi-icon{background:#f59e0b1f}.kpi-card.tone-red .kpi-icon{background:#ef44441a}.kpi-card.tone-cyan .kpi-icon{background:#0ea5e91a}.kpi-label{color:var(--text-2);font-size:13px;font-weight:500}.kpi-go{color:var(--text-3);margin-left:auto}.kpi-value{color:var(--text);align-items:baseline;gap:4px;display:flex}.kpi-value b{letter-spacing:-.5px;font-size:28px;font-weight:700}.kpi-unit{color:var(--text-3);font-size:13px}.kpi-note{margin-top:6px;font-size:12px;font-weight:500}.work-grid{grid-template-columns:minmax(0,1.65fr) minmax(320px,1fr);gap:16px;margin-bottom:16px;display:grid}.work-grid.secondary{grid-template-columns:minmax(0,1.45fr) minmax(300px,1fr)}.work-grid.tertiary{grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr)}.work-grid.bottom{grid-template-columns:minmax(0,1.35fr) minmax(320px,1fr)}.bottom-stack{flex-direction:column;gap:16px;min-width:0;display:flex}.occupancy-dist{align-items:center;gap:28px;min-height:220px;padding:8px 4px;display:flex}.dist-list{flex-direction:column;flex:1;gap:12px;display:flex}.dist-list li{align-items:center;gap:10px;font-size:13px;display:flex}.dist-list i{border-radius:2px;width:8px;height:8px}.dist-list b{margin-left:auto;font-size:16px}.dist-actions{gap:8px;margin-top:8px;display:flex!important}.alert-count{color:var(--text-2);font-size:12px}.alert-stats{color:var(--text-2);gap:14px;margin-bottom:12px;font-size:12px;display:flex}.alert-stats span{align-items:center;gap:6px;display:inline-flex}.alert-list{flex-direction:column;gap:8px;max-height:320px;display:flex;overflow:auto}.alert-list>li{border:1px solid var(--line);background:#fbfdff;border-radius:10px;flex-direction:column;gap:6px;padding:10px 10px 8px;transition:border-color .2s,background .2s;display:flex}.alert-list>li.is-new{background:#ef44440a;border-color:#ef444459;animation:.35s slideIn}.alert-item{align-items:flex-start;gap:10px;width:100%;display:flex}.alert-body{flex-direction:column;gap:2px;min-width:0;display:flex}.alert-body strong{font-size:13px;font-weight:600}.alert-body small{color:var(--text-3);font-size:11.5px}.alert-acts{gap:6px;padding-left:52px;display:flex}.safety-banner{color:#b91c1c;background:#ef444414;border:1px solid #ef444433;border-radius:8px;align-items:center;gap:8px;margin-top:12px;padding:10px 12px;font-size:12px;font-weight:500;display:flex}.care-summary{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px;display:grid}.care-summary>div{background:#f8fafc;border-radius:10px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.care-summary b{font-size:20px;font-weight:700}.care-summary span{color:var(--text-3);font-size:12px}.table-scroll{-webkit-overflow-scrolling:touch;width:100%;max-width:100%;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;min-width:640px;font-size:12.5px}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:9px 8px}.data-table th{color:var(--text-3);font-size:11.5px;font-weight:600}.data-table tbody tr{cursor:pointer;transition:background .15s}.data-table tbody tr:hover{background:#2563eb0a}.data-table tbody tr.row-warn{background:#ef44440a}.todo-list{flex-direction:column;gap:8px;display:flex}.todo-item{border:1px solid var(--line);background:#fbfdff;border-radius:10px;grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;width:100%;padding:11px 12px;display:grid}.todo-item:hover{background:#2563eb08;border-color:#2563eb40}.todo-item strong{font-size:13px;font-weight:600;display:block}.todo-item small{color:var(--text-3);font-size:11.5px}.todo-item b{color:var(--text);font-size:18px;font-weight:700}.todo-item em{color:var(--text-3);margin-left:2px;font-size:12px;font-style:normal}.priority{text-align:center;border-radius:4px;min-width:28px;padding:2px 6px;font-size:11px;font-weight:700}.priority.p-高{color:var(--red);background:#ef44441a}.priority.p-中{color:#b45309;background:#f59e0b1f}.movement-summary{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px;display:grid}.movement-stat{background:#f8fafc;border:1px solid #0000;border-radius:10px;flex-direction:column;gap:2px;padding:12px;display:flex}.movement-stat:hover{background:#fff;border-color:#2563eb33}.movement-stat b{font-size:22px;font-weight:700}.movement-stat span{color:var(--text-3);font-size:12px}.staff-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.staff-card{background:#f8fafc;border-radius:10px;padding:12px}.staff-card strong{margin-bottom:8px;font-size:13px;display:block}.staff-nums{color:var(--text-2);grid-template-columns:1fr 1fr;gap:6px 10px;font-size:12px;display:grid}.staff-alerts{flex-direction:column;gap:8px;display:flex}.staff-alerts button{border:1px solid var(--line);background:#fff;border-radius:10px;align-items:center;gap:10px;width:100%;padding:10px 12px;display:flex}.staff-alerts button:hover{border-color:#2563eb40}.staff-alerts strong{font-size:13px;display:block}.staff-alerts small{color:var(--text-3);font-size:11.5px}.staff-alerts svg{color:var(--text-3);margin-left:auto}.finance-kpis{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px;display:grid}.finance-kpis>div{background:#f8fafc;border-radius:10px;flex-direction:column;gap:4px;padding:12px;display:flex}.finance-kpis span{color:var(--text-3);font-size:12px}.finance-kpis b{font-size:20px;font-weight:700}.empty-perm{min-height:140px;color:var(--text-3);background:#f8fafc;border-radius:10px;place-items:center;font-size:13px;display:grid}.health-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.health-card{border:1px solid var(--line);background:#fbfdff;border-radius:10px;flex-direction:column;gap:4px;min-height:92px;padding:12px;display:flex}.health-card:hover{box-shadow:var(--shadow-sm);border-color:#2563eb40}.health-card b{font-size:22px;font-weight:700}.health-card strong{font-size:12.5px;font-weight:600}.health-card small{color:var(--text-3);font-size:11px}.shortcut-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.shortcut-item{color:var(--text-2);border:1px solid var(--line);background:#fbfdff;border-radius:10px;flex-direction:column;align-items:center;gap:8px;padding:14px 8px;font-size:12.5px;font-weight:500;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex}.shortcut-item:hover{color:var(--blue);box-shadow:var(--shadow-sm);border-color:#2563eb47;transform:translateY(-2px)}.shortcut-icon{width:36px;height:36px;color:var(--blue);background:#2563eb14;border-radius:10px;place-items:center;display:grid}.page-foot{color:var(--text-3);border-top:1px dashed var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:4px;padding:14px 4px 8px;font-size:12px;display:flex}.page-foot span{align-items:center;gap:6px;display:inline-flex}.page-foot b{color:var(--text-2)}.toast{z-index:50;color:var(--text);box-shadow:var(--shadow-md);background:#fff;border:1px solid #10b98159;border-radius:12px;align-items:center;gap:8px;padding:12px 16px;animation:.25s fadeIn;display:flex;position:fixed;bottom:24px;right:24px}.toast svg{color:var(--green)}.toast-sub{color:var(--text-3);font-size:12px}.drawer-mask{z-index:45;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a47;position:fixed;inset:0}.drawer{background:#fff;width:min(420px,100%);height:100%;padding:20px;animation:.25s slideIn;position:absolute;top:0;right:0;overflow:auto;box-shadow:-12px 0 40px #0f172a1f}.drawer-head{justify-content:space-between;gap:12px;margin-bottom:16px;display:flex}.drawer-head h2{margin-top:8px;font-size:18px;font-weight:700}.drawer-head p{color:var(--text-3);margin-top:4px;font-size:12.5px}.drawer-body p{color:var(--text-2);font-size:13px;line-height:1.6}.drawer-actions{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}@media (max-width:1600px){.kpi-matrix{grid-template-columns:repeat(3,minmax(0,1fr))}.run-state{display:none}}@media (max-width:1280px){.work-grid,.work-grid.secondary,.work-grid.tertiary,.work-grid.bottom{grid-template-columns:1fr}.page-header{flex-direction:column;align-items:flex-start}.shortcut-grid{grid-template-columns:repeat(4,1fr)}.health-grid{grid-template-columns:repeat(2,1fr)}.global-search{display:none}}@media (max-width:900px){.kpi-matrix{grid-template-columns:repeat(2,minmax(0,1fr))}.care-summary,.movement-summary,.finance-kpis,.shortcut-grid{grid-template-columns:repeat(2,1fr)}.status-matrix{grid-template-columns:1fr 1fr}.filter-bar{flex-direction:column;align-items:stretch}}.page-crumb{color:var(--text-3);white-space:nowrap;align-items:center;gap:6px;font-size:12.5px;display:flex}.page-crumb strong{color:var(--text);font-weight:600}.crumb-sep{opacity:.55;transform:rotate(-90deg)}.page-header-block{margin-bottom:4px}.filter-bar{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);background:#fff;flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:14px;padding:10px 14px;display:flex}.filter-bar label,.filter-group{color:var(--text-2);align-items:center;gap:8px;font-size:12.5px;display:inline-flex}.filter-bar select{border:1px solid var(--line-strong);background:#fff;border-radius:8px;outline:none;height:30px;padding:0 10px}.filter-bar select:focus{border-color:#1d4ed873}.status-matrix{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px;display:grid}.status-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);flex-direction:column;gap:6px;padding:14px 16px;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex}.status-card:hover{box-shadow:var(--shadow-md);border-color:#1d4ed833;transform:translateY(-2px)}.status-card-head{color:var(--text-2);justify-content:space-between;align-items:center;font-size:13px;display:flex}.status-card b{letter-spacing:-.4px;font-size:26px;font-weight:700}.status-card small{color:var(--text-3);font-size:12px}.trend-stats{color:var(--text-2);flex-wrap:wrap;gap:18px;margin-top:10px;font-size:12.5px;display:flex}.trend-stats b{color:var(--text)}.structure-body{align-items:center;gap:24px;min-height:180px;display:flex}.rank-badge{min-width:44px;color:var(--blue);background:#1d4ed81a;border-radius:4px;justify-content:center;padding:2px 6px;font-size:11px;font-weight:700;display:inline-flex}.rank-badge.r1{color:#b91c1c;background:#ef44441f}.rank-badge.r2{color:#b45309;background:#f59e0b24}.rank-badge.r3{color:#0369a1;background:#0ea5e91f}.campus-toolbar{align-items:center;gap:8px;margin-bottom:12px;display:flex}.campus-search{height:34px;color:var(--text-3);background:#f1f5f9;border-radius:8px;flex:1;align-items:center;gap:8px;padding:0 12px;display:flex}.campus-search input{min-width:0;color:var(--text);background:0 0;border:0;outline:0;flex:1}.campus-stage{grid-template-columns:minmax(0,1fr) 220px;gap:14px;min-height:320px;display:grid}.campus-map{border:1px solid var(--line);background:linear-gradient(160deg,#e8f1fb 0%,#f4f8fc 45%,#eef6f3 100%);border-radius:12px;min-height:320px;position:relative;overflow:hidden}.campus-grid{opacity:.7;background-image:linear-gradient(#1d4ed80d 1px,#0000 1px),linear-gradient(90deg,#1d4ed80d 1px,#0000 1px);background-size:28px 28px;position:absolute;inset:0}.campus-river{background:linear-gradient(90deg,#0ea5e926,#06b6d473,#0ea5e92e);border-radius:999px;height:18px;position:absolute;top:46%;left:8%;right:18%;transform:rotate(-4deg);box-shadow:0 0 18px #06b6d440}.campus-building{color:#0f172a;background:linear-gradient(160deg,#fffffff5,#e2ecfaeb);border:1px solid #1d4ed82e;border-radius:10px;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:4px;padding:8px;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;position:absolute;box-shadow:0 10px 24px #0f172a14}.campus-building span{font-size:12px;font-weight:600}.campus-building em{color:var(--blue);font-size:11px;font-style:normal;font-weight:700}.campus-building:hover,.campus-building.on{z-index:2;border-color:#1d4ed873;transform:translateY(-2px)scale(1.02);box-shadow:0 14px 28px #1d4ed829}.campus-building.st-预警{border-color:#f59e0b8c}.campus-building.st-告警{border-color:#ef44448c;box-shadow:0 0 0 3px #ef44441f}.campus-weather{color:var(--text-2);border:1px solid var(--line);background:#ffffffe6;border-radius:8px;padding:6px 10px;font-size:12px;position:absolute;top:12px;left:12px}.campus-detail{border:1px solid var(--line);background:#f8fafc;border-radius:12px;flex-direction:column;gap:8px;padding:14px;display:flex}.campus-detail strong{font-size:15px}.campus-detail p{color:var(--text-2);font-size:12.5px}.campus-detail-actions{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.device-overview{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:8px;display:grid}.device-overview>div{background:#f8fafc;border-radius:10px;flex-direction:column;gap:4px;padding:12px;display:flex}.device-overview span{color:var(--text-3);font-size:12px}.device-overview b{font-size:22px;font-weight:700}.subsystem-list{flex-direction:column;gap:8px;display:flex}.subsystem-list button{border:1px solid var(--line);background:#fff;border-radius:10px;grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;width:100%;padding:10px 12px;display:grid}.subsystem-list button:hover{border-color:#1d4ed840}.subsystem-list strong{font-size:13px}.subsystem-list span{color:var(--text-2);font-size:12px}.ticket-stats{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px;display:grid}.ticket-stat{background:#f8fafc;border:1px solid #0000;border-radius:10px;flex-direction:column;gap:2px;padding:12px;display:flex}.ticket-stat:hover{background:#fff;border-color:#1d4ed833}.ticket-stat b{font-size:22px;font-weight:700}.ticket-stat span{color:var(--text-3);font-size:12px}.ai-hero{background:linear-gradient(135deg,#1d4ed814,#06b6d41a);border:1px solid #1d4ed81f;border-radius:12px;gap:12px;margin-bottom:8px;padding:14px;display:flex}.ai-hero-icon{color:#fff;background:linear-gradient(135deg,#1d4ed8,#06b6d4);border-radius:12px;flex:0 0 42px;place-items:center;width:42px;height:42px;display:grid}.ai-hero strong{margin-bottom:4px;font-size:13.5px;display:block}.ai-hero p{color:var(--text-2);font-size:12.5px;line-height:1.55}.ai-questions{flex-wrap:wrap;gap:8px;display:flex}.ai-q{color:var(--text-2);border:1px solid var(--line);background:#fff;border-radius:8px;align-items:center;gap:6px;padding:8px 10px;font-size:12px;display:inline-flex}.ai-q:hover{color:var(--blue);border-color:#1d4ed847}.ai-summary{flex-direction:column;gap:8px;display:flex}.ai-summary li{border:1px solid var(--line);background:#fbfdff;border-radius:10px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.ai-summary strong{font-size:12.5px}.ai-summary span{color:var(--text-2);font-size:12px;line-height:1.5}.ai-chat-bubble{background:#f8fafc;border-radius:12px;margin-bottom:10px;padding:12px}.ai-chat-bubble.user{background:#1d4ed814}.ai-chat-bubble strong{color:var(--text-3);margin-bottom:4px;font-size:12px;display:block}.ai-chat-bubble p{color:var(--text);font-size:13px;line-height:1.6}.work-grid.analysis{grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr)}.work-grid.campus{grid-template-columns:minmax(0,1.7fr) minmax(0,.9fr)}.work-grid>.panel,.work-grid.campus>.panel,.work-grid.analysis>.panel{min-width:0;overflow:hidden}.mon-alert-compact{max-height:360px}.mon-alert-compact .alert-body strong{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.mon-alert-compact .alert-body small{white-space:normal;line-height:1.45;display:block}.work-grid.ops{grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr) minmax(300px,1fr)}.work-grid.ai-row{grid-template-columns:1fr}.module-placeholder{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);flex-direction:column;gap:10px;min-height:360px;padding:28px;display:flex}.module-placeholder h2{font-size:22px}.module-placeholder p{color:var(--text-2);max-width:720px;font-size:13.5px}.module-placeholder .hint{margin-top:8px}.page-header-compact{min-height:56px;padding-bottom:8px}.page-header-compact h1{font-size:20px}.viz-page{flex-direction:column;gap:14px;margin-bottom:16px;display:flex}.viz-toolbar{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);background:#fff;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px;display:flex}.viz-search{flex:1;min-width:220px}.viz-layout{grid-template-columns:minmax(0,1.7fr) 300px;gap:14px;display:grid}.viz-layout.building-layout{grid-template-columns:200px minmax(0,1.5fr) 300px}.viz-stage-panel{min-height:560px}.viz-map{min-height:480px}.viz-side,.viz-floor-panel{min-width:0}.viz-building-hero{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.viz-building-hero strong{font-size:18px}.viz-kv{grid-template-columns:1fr;gap:8px;display:grid}.viz-kv>div{background:#f8fafc;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.viz-kv span{color:var(--text-3);font-size:12px}.viz-kv b{font-size:13px;font-weight:650}.viz-tags{flex-wrap:wrap;gap:6px;margin:12px 0;display:flex}.viz-tags span{color:var(--blue);background:#1d4ed814;border-radius:999px;padding:3px 8px;font-size:11.5px}.viz-building-list,.viz-floor-list,.viz-device-list{flex-direction:column;gap:6px;max-height:360px;display:flex;overflow:auto}.viz-building-list button,.viz-floor-list button,.viz-device-list button{border:1px solid var(--line);background:#fbfdff;border-radius:10px;align-items:center;gap:10px;width:100%;padding:10px;display:flex}.viz-building-list button:hover,.viz-floor-list button:hover,.viz-device-list button:hover,.viz-building-list button.on,.viz-floor-list button.on,.viz-device-list button.on{background:#1d4ed80d;border-color:#1d4ed84d}.viz-building-list strong,.viz-floor-list strong,.viz-device-list strong{font-size:13px;display:block}.viz-building-list small,.viz-floor-list small,.viz-device-list small{color:var(--text-3);font-size:11.5px}.viz-floor-list em,.viz-device-list em{color:var(--text-2);margin-left:auto;font-size:11.5px;font-style:normal}.viz-stat-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.viz-stat-card{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);background:#fff;flex-direction:column;gap:6px;padding:14px 16px;display:flex}.viz-stat-card span{color:var(--text-2);font-size:12.5px}.viz-stat-card b{font-size:20px;font-weight:700}.building-stage{margin-top:4px}.building-floorplan{border:1px solid var(--line);background:linear-gradient(160deg,#eef4fb 0%,#f7fafc 50%,#eef8f4 100%);border-radius:12px;min-height:460px;position:relative;overflow:hidden}.building-core{min-width:160px;color:var(--text);box-shadow:var(--shadow-md);background:#ffffffeb;border:1px solid #1d4ed82e;border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:16px 18px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.building-core span{font-size:14px;font-weight:650}.building-core small{color:var(--text-3);font-size:11.5px}.device-pin{color:var(--text);box-shadow:var(--shadow-sm);background:#fffffff2;border:1px solid #1d4ed82e;border-radius:999px;align-items:center;gap:6px;max-width:160px;padding:6px 8px;display:flex;position:absolute;transform:translate(-50%,-50%)}.device-pin i{background:var(--green);border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 3px #10b98126}.device-pin span{text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;font-weight:600;overflow:hidden}.device-pin.on{z-index:2;border-color:#1d4ed873;box-shadow:0 8px 18px #1d4ed829}.device-pin.st-告警 i,.device-pin.st-故障 i{background:var(--red);box-shadow:0 0 0 3px #ef444426}.device-pin.st-离线 i{background:var(--amber);box-shadow:0 0 0 3px #f59e0b26}.topology-map{min-height:480px}.topology-svg{width:100%;height:100%;position:absolute;inset:0}.topology-link{stroke:#1d4ed859;stroke-width:.4px}.topology-node{min-width:96px;box-shadow:var(--shadow-sm);background:#fffffff2;border:1px solid #1d4ed833;border-radius:10px;flex-direction:column;gap:2px;padding:8px 10px;display:flex;position:absolute;transform:translate(-50%,-50%)}.topology-node small{color:var(--text-3);font-size:10.5px}.topology-node strong{font-size:12px}.viz-building-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.viz-building-card{border:1px solid var(--line);background:#fbfdff;border-radius:12px;flex-direction:column;align-items:flex-start;gap:6px;padding:16px;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex}.viz-building-card:hover{box-shadow:var(--shadow-sm);border-color:#1d4ed847;transform:translateY(-2px)}.viz-building-card-icon{width:34px;height:34px;color:var(--blue);background:#1d4ed814;border-radius:10px;place-items:center;display:grid}.viz-building-card strong{font-size:15px}.viz-building-card small{color:var(--text-3);font-size:12px}@media (max-width:1440px){.work-grid.ops{grid-template-columns:1fr 1fr}.work-grid.ops .ai-panel{grid-column:1/-1}}@media (max-width:1280px){.work-grid.analysis,.work-grid.campus,.work-grid.ops,.campus-stage{grid-template-columns:1fr}.status-matrix{grid-template-columns:1fr 1fr}.page-crumb{display:none}.viz-layout,.viz-layout.building-layout{grid-template-columns:1fr}.viz-stat-row,.viz-building-grid{grid-template-columns:1fr 1fr}}@media (max-width:900px){.viz-building-grid,.viz-stat-row{grid-template-columns:1fr}}.twin-page{--twin-bg:#07101f;--twin-panel:#08162ab8;--twin-border:#38bdf838;--twin-cyan:#38bdf8;--twin-blue:#60a5fa;--twin-amber:#f59e0b;--twin-red:#f97316;--twin-text:#e2e8f0;--twin-muted:#94a3b8;min-height:calc(100vh - 128px);color:var(--twin-text);background:radial-gradient(at 50% 0,#0ea5e92e,#0000 55%),linear-gradient(#0b1628 0%,#07101f 48%,#050b16 100%);border-radius:16px;flex-direction:column;gap:10px;margin:-8px -4px 0;padding:12px;display:flex;overflow:hidden}.twin-topbar,.twin-bottombar{border:1px solid var(--twin-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(90deg,#081c34e6,#0a1428bf);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.twin-brand{flex-direction:column;gap:2px;display:flex}.twin-brand b{letter-spacing:.02em;color:#f8fafc;font-size:16px}.twin-brand span{color:var(--twin-muted);font-size:12px}.twin-top-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.twin-top-actions select,.twin-search{height:34px;color:var(--twin-text);background:#020c1ba6;border:1px solid #38bdf840;border-radius:8px}.twin-top-actions select{padding:0 10px}.twin-search{align-items:center;gap:6px;min-width:220px;padding:0 10px;display:flex}.twin-search input{color:var(--twin-text);background:0 0;border:0;outline:none;flex:1;font-size:12.5px}.twin-icon-btn{width:34px;height:34px;color:var(--twin-cyan);cursor:pointer;background:#0ea5e91a;border:1px solid #38bdf840;border-radius:8px;place-items:center;display:grid}.twin-icon-btn:hover{background:#0ea5e933}.twin-note{color:#fde68a;background:#f59e0b14;border:1px dashed #f59e0b66;border-radius:8px;margin:0;padding:8px 12px;font-size:12px}.twin-stage{flex:1;grid-template-columns:280px minmax(0,1fr) 300px;gap:10px;min-height:560px;display:grid}.twin-panel{z-index:2;flex-direction:column;gap:10px;min-height:0;display:flex}.twin-card{border:1px solid var(--twin-border);background:var(--twin-panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:12px;padding:12px;box-shadow:0 0 0 1px #0ea5e90a,0 12px 40px #00000040}.twin-card>header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.twin-card>header strong{color:#f1f5f9;font-size:13px}.twin-card>header span{color:var(--twin-cyan);letter-spacing:.08em;font-size:11px}.twin-card-fill{flex-direction:column;flex:1;min-height:0;display:flex}.twin-tree{max-height:280px;overflow:auto}.twin-tree-row{width:100%;color:var(--twin-text);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:6px;padding:6px 8px;display:flex}.twin-tree-row:hover,.twin-tree-row.on{background:#0ea5e924}.twin-tree-row.warn strong{color:#fdba74}.twin-tree-caret{width:12px;color:var(--twin-muted);font-size:11px}.twin-tree-row strong{flex:1;font-size:12.5px}.twin-tree-row small{color:var(--twin-muted);font-size:11px}.twin-badge{text-align:center;border-radius:999px;min-width:16px;padding:0 5px;font-size:10px;font-style:normal}.twin-badge.danger{color:#fdba74;background:#f9731640}.twin-layers{flex-direction:column;gap:6px;display:flex}.twin-layers label{color:var(--twin-text);cursor:pointer;align-items:center;gap:8px;font-size:12.5px;display:flex}.twin-donut-row{grid-template-columns:120px minmax(0,1fr);align-items:center;gap:8px;display:grid}.twin-donut-center{flex-direction:column;align-items:center;line-height:1.1;display:flex}.twin-donut-center b{color:var(--twin-cyan);font-size:14px}.twin-donut-center span{color:var(--twin-muted);font-size:10px}.twin-scene{perspective:1200px;background:radial-gradient(circle at 70% 18%,#38bdf829,#0000 38%),radial-gradient(circle at 20% 80%,#10b98114,#0000 40%),linear-gradient(#0a1730 0%,#081427 42%,#07111f 100%);border:1px solid #38bdf82e;border-radius:14px;min-height:560px;position:relative;overflow:hidden;box-shadow:inset 0 0 80px #0ea5e914}.twin-scene-sky{pointer-events:none;background:linear-gradient(#0c1c38 0%,#0000 100%);position:absolute;inset:0 0 42%}.twin-scene-ground{transform-origin:bottom;pointer-events:none;background:linear-gradient(145deg,#14532d59,#0e749024 45%,#0f172a59),repeating-linear-gradient(90deg,#94a3b80a 0 16px,#0000 16px 32px),repeating-linear-gradient(0deg,#94a3b808 0 16px,#0000 16px 32px);border:1px solid #38bdf824;border-radius:18px;height:62%;position:absolute;bottom:4%;left:4%;right:4%;transform:rotateX(58deg)rotate(-18deg)scale(1.08);box-shadow:0 30px 60px #00000073,inset 0 0 40px #38bdf814}.twin-scene-lake{pointer-events:none;z-index:1;background:radial-gradient(circle,#38bdf86b,#0e74901f);border-radius:50%;width:14%;height:10%;position:absolute;top:52%;left:44%;transform:rotateX(55deg);box-shadow:0 0 28px #38bdf847}.twin-scene-road{pointer-events:none;z-index:1;background:#47556973;border:1px solid #94a3b81f;position:absolute}.twin-road-h{height:7px;top:60%;left:14%;right:14%;transform:rotate(-8deg)}.twin-road-v{width:7px;top:34%;bottom:16%;left:49%;transform:skewY(-8deg)}.twin-scene-iso{z-index:3;position:absolute;inset:0}.twin-building,.twin-bldg-3d{cursor:pointer;width:var(--foot,56px);height:calc(var(--height,55px) + var(--depth,36px) * .35);filter:drop-shadow(0 14px 18px #00000073);background:0 0;border:0;padding:0;transition:transform .22s,filter .22s;position:absolute;transform:translate(-50%,-100%)}.twin-bldg-mesh{width:var(--foot,56px);height:var(--height,55px);transform-style:preserve-3d;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}.twin-bldg-face{box-sizing:border-box;display:block;position:absolute}.twin-bldg-front{width:var(--foot,56px);height:var(--height,55px);transform-origin:0 100%;background:linear-gradient(#60a5fa8c 0%,#1e40afe0 100%),repeating-linear-gradient(90deg,#0000 0 9px,#e2e8f029 9px 11px,#0000 11px 18px),repeating-linear-gradient(0deg,#0000 0 8px,#0f172a59 8px 9px,#0000 9px 16px);border:1px solid #7dd3fc73;bottom:0;left:0;transform:skewY(-18deg);box-shadow:inset 0 0 18px #38bdf82e}.twin-bldg-side{left:var(--foot,56px);width:var(--depth,36px);height:var(--height,55px);transform-origin:0 100%;background:linear-gradient(#2563eb8c,#0f172aeb),repeating-linear-gradient(0deg,#0000 0 8px,#94a3b81f 8px 9px,#0000 9px 16px);border:1px solid #3b82f659;margin-left:-1px;bottom:0;transform:skewY(28deg)}.twin-bldg-top{left:0;bottom:var(--height,55px);width:var(--foot,56px);height:var(--depth,36px);transform:translate(calc(var(--depth,36px) * .42), calc(var(--depth,36px) * -.55)) skewX(-42deg) scaleY(.55);transform-origin:0 100%;background:linear-gradient(135deg,#bae6fd8c,#3b82f673 55%,#1e40afa6);border:1px solid #bae6fd8c;box-shadow:0 0 16px #38bdf833}.twin-bldg-windows{pointer-events:none;position:absolute;inset:0}.twin-bldg-3d.on,.twin-bldg-3d.hover{filter:drop-shadow(0 18px 22px #00000080)drop-shadow(0 0 18px #38bdf859);transform:translate(-50%,calc(-100% - 8px))scale(1.05);z-index:40!important}.twin-bldg-3d.alert .twin-bldg-front{background:linear-gradient(#fb923ca6,#9a3412eb),repeating-linear-gradient(90deg,#0000 0 9px,#fed7aa40 9px 11px,#0000 11px 18px),repeating-linear-gradient(0deg,#0000 0 8px,#43140759 8px 9px,#0000 9px 16px);border-color:#fb923ccc;box-shadow:inset 0 0 18px #f9731640,0 0 18px #f9731640}.twin-bldg-3d.alert .twin-bldg-side{background:linear-gradient(#ea580c99,#431407f2);border-color:#ea580c8c}.twin-bldg-3d.alert .twin-bldg-top{background:linear-gradient(135deg,#fed7aab3,#ea580c8c);border-color:#fdba74b3;box-shadow:0 0 18px #f9731659}.twin-building-name{white-space:nowrap;color:#e2e8f0;text-shadow:0 1px 4px #000000d9;pointer-events:none;font-size:11px;font-weight:600;position:absolute;bottom:-4px;left:50%;transform:translate(-50%)}.twin-float-card{text-align:left;z-index:5;background:#081830eb;border:1px solid #38bdf859;border-radius:10px;min-width:156px;padding:8px 10px;position:absolute;top:8%;left:calc(100% + 10px);box-shadow:0 10px 28px #00000059}.twin-bldg-3d .twin-alert-pin{top:-30px}.twin-bldg-3d .twin-ok-pin{top:-18px}.twin-bldg-3d .twin-dev-dot{bottom:20px}.twin-float-card strong{color:#e0f2fe;margin-bottom:4px;font-size:12.5px;display:block}.twin-float-card p{color:var(--twin-muted);margin:2px 0;font-size:11px}.twin-float-static{top:18%;left:auto;right:8%}.twin-alert-pin{color:#fff;background:linear-gradient(#fb923c,#ea580c);border-radius:50%;place-items:center;width:26px;height:26px;animation:1.6s ease-in-out infinite twin-pulse;display:grid;position:absolute;top:-18px;left:50%;transform:translate(-50%);box-shadow:0 0 16px #f97316b3}.twin-ok-pin{background:#22c55e;border-radius:50%;width:10px;height:10px;position:absolute;top:-10px;left:50%;transform:translate(-50%);box-shadow:0 0 10px #22c55eb3}.twin-dev-dot{border-radius:50%;width:7px;height:7px;position:absolute;bottom:8px}.twin-dev-dot.elec{background:#38bdf8;left:18%}.twin-dev-dot.hvac{background:#22d3ee;right:18%}@keyframes twin-pulse{0%,to{transform:translate(-50%)scale(1)}50%{transform:translate(-50%)scale(1.12)}}.twin-scene-hint,.twin-watermark{z-index:4;color:#94a3b8d9;font-size:11px;position:absolute}.twin-scene-hint{bottom:10px;left:12px}.twin-watermark{bottom:10px;right:12px}.twin-tabs{margin-bottom:2px}.twin-page .segmented{background:#020c1b8c;border-color:#38bdf833}.twin-page .segmented button{color:var(--twin-muted)}.twin-page .segmented button.on{color:#e0f2fe;background:#0ea5e940}.twin-energy-grid{grid-template-columns:1fr;gap:8px;display:grid}.twin-energy-item{color:var(--twin-cyan);background:#0ea5e914;border:1px solid #38bdf81f;border-radius:10px;align-items:center;gap:10px;padding:8px 10px;display:flex}.twin-energy-item span{color:var(--twin-muted);font-size:11.5px;display:block}.twin-energy-item b{color:#f8fafc;font-size:14px}.twin-energy-item small{color:var(--twin-muted);font-size:11px;font-weight:500}.twin-stat-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.twin-stat{background:#0f172a73;border:1px solid #38bdf81f;border-radius:10px;padding:10px}.twin-stat span{color:var(--twin-muted);font-size:11.5px;display:block}.twin-stat b{color:#f8fafc;font-size:18px}.twin-stat.tone-green b{color:#4ade80}.twin-stat.tone-amber b{color:#fbbf24}.twin-stat.tone-red b,.twin-stat.tone-orange b{color:#fb923c}.twin-stat.tone-cyan b{color:#22d3ee}.twin-kv{flex-direction:column;gap:6px;display:flex}.twin-kv>div{background:#0f172a66;border-radius:8px;justify-content:space-between;gap:8px;padding:7px 8px;display:flex}.twin-kv span{color:var(--twin-muted);font-size:12px}.twin-kv b{color:#e2e8f0;font-size:12.5px}.twin-card-actions{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.twin-btn{color:#e0f2fe;cursor:pointer;background:linear-gradient(#0ea5e959,#0284c759);border:1px solid #38bdf859;border-radius:8px;align-items:center;gap:6px;height:32px;padding:0 12px;font-size:12.5px;display:inline-flex}.twin-btn.ghost{color:#cbd5e1;background:#0f172a59;border-color:#94a3b840}.twin-btn:hover{filter:brightness(1.08)}.twin-alert-list{flex-direction:column;gap:6px;max-height:280px;display:flex;overflow:auto}.twin-card-fill .twin-alert-list{flex:1;max-height:none}.twin-alert-item{width:100%;color:inherit;text-align:left;cursor:pointer;background:#0f172a66;border:1px solid #38bdf81f;border-radius:10px;justify-content:space-between;gap:8px;padding:8px 10px;display:flex}.twin-alert-item:hover,.twin-alert-item.on{background:#0ea5e91f;border-color:#38bdf866}.twin-alert-item.lv-高{border-left:3px solid #f97316}.twin-alert-item.lv-中{border-left:3px solid #f59e0b}.twin-alert-item.lv-低{border-left:3px solid #38bdf8}.twin-alert-item strong{font-size:12.5px;display:block}.twin-alert-item small{color:var(--twin-muted);font-size:11px}.twin-alert-meta{color:var(--twin-muted);flex-direction:column;align-items:flex-end;gap:2px;font-size:11px;display:flex}.twin-mini-hint{color:var(--twin-muted);margin:8px 0 0;font-size:11.5px;line-height:1.45}.twin-crumb{flex-wrap:wrap;gap:6px;display:flex}.twin-crumb button{height:30px;color:var(--twin-muted);cursor:pointer;background:#0f172a73;border:1px solid #38bdf833;border-radius:999px;padding:0 12px;font-size:12px}.twin-crumb button.on{color:#e0f2fe;background:#0ea5e938;border-color:#38bdf873}.twin-bottom-actions{flex-wrap:wrap;gap:6px;display:flex}.twin-space-scene{place-items:center;display:grid}.twin-building-hero-3d{place-items:center;width:100%;height:100%;display:grid;position:relative}.twin-iso-building{width:180px;height:260px;position:relative}.twin-iso-floor{color:#e0f2fe;background:linear-gradient(90deg,#2563eb8c,#0ea5e966);border:1px solid #7dd3fc66;border-radius:6px;justify-content:flex-end;align-items:center;height:34px;padding-right:10px;font-size:11px;display:flex;position:absolute;left:0;right:0;box-shadow:0 8px 16px #00000040}.twin-iso-building.alert .twin-iso-floor{background:linear-gradient(90deg,#ea580c8c,#f9731659);border-color:#fb923c8c}.twin-cutaway{flex-direction:column;gap:8px;width:min(520px,92%);display:flex}.twin-cut-floor{color:var(--twin-text);cursor:pointer;text-align:left;background:#081830b3;border:1px solid #38bdf833;border-radius:10px;grid-template-columns:56px 1fr auto;align-items:center;gap:10px;padding:12px 14px;display:grid}.twin-cut-floor.on{border-color:#38bdf88c;box-shadow:0 0 20px #0ea5e940}.twin-cut-floor.warn{border-left:3px solid #f97316}.twin-cut-floor em{color:var(--twin-muted);font-size:11.5px;font-style:normal}.twin-room-stage{width:100%;height:100%;padding:24px}.twin-room-plan{background:linear-gradient(#38bdf80d 1px,#0000 1px) 0 0/28px 28px,linear-gradient(90deg,#38bdf80d 1px,#0000 1px) 0 0/28px 28px,#0814288c;border:1px dashed #38bdf84d;border-radius:14px;width:100%;height:100%;min-height:420px;position:relative}.twin-room-core{color:var(--twin-cyan);background:#081830e0;border:1px solid #38bdf847;border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:16px 18px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.twin-room-core small{color:var(--twin-muted)}.twin-room-pin{color:#e2e8f0;cursor:pointer;background:#081830e6;border:1px solid #38bdf84d;border-radius:999px;align-items:center;gap:6px;max-width:150px;padding:6px 8px;font-size:11px;display:flex;position:absolute;transform:translate(-50%,-50%)}.twin-room-pin i{background:#22c55e;border-radius:50%;width:8px;height:8px}.twin-room-pin.st-告警 i,.twin-room-pin.st-故障 i{background:#f97316}.twin-room-pin.st-离线 i{background:#f59e0b}.twin-room-pin.on{border-color:#38bdf8b3;box-shadow:0 0 16px #0ea5e959}.twin-subpage{min-height:auto}.twin-sub-body{padding:4px 2px 12px}.twin-feature-list{color:var(--twin-muted);margin:0;padding-left:18px;font-size:13px;line-height:1.7}.twin-table{color:var(--twin-text)}.twin-page .data-table th{color:var(--twin-muted);background:#0ea5e914}.twin-page .data-table td{color:var(--twin-text);border-color:#38bdf81a}.twin-page .bar-track{background:#94a3b826}.twin-page .bar-label,.twin-page .bar-row b{color:var(--twin-muted)}.twin-domain-page .twin-stage{min-height:620px}.twin-domain-scene{min-height:540px}.twin-domain-plan{width:auto;height:auto;position:absolute;inset:16px}.twin-dev-marker{color:#e2e8f0;cursor:pointer;z-index:5;background:#081830eb;border:1px solid #38bdf859;border-radius:999px;align-items:center;gap:6px;max-width:150px;padding:6px 8px;font-size:11px;display:inline-flex;position:absolute;transform:translate(-50%,-50%)}.twin-dev-marker i{background:#22c55e;border-radius:50%;flex-shrink:0;width:9px;height:9px;box-shadow:0 0 8px #22c55e8c}.twin-dev-marker span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.twin-dev-marker.on{z-index:8;border-color:#38bdf8cc;box-shadow:0 0 18px #0ea5e966}.twin-dev-marker.pulse i{animation:1.4s ease-in-out infinite twin-pulse}.twin-dev-marker.ok i{background:#22c55e;box-shadow:0 0 8px #22c55e8c}.twin-dev-marker.idle i{background:#60a5fa;box-shadow:0 0 8px #60a5fa73}.twin-dev-marker.off i{box-shadow:none;box-sizing:border-box;background:#94a3b8;border:1px solid #cbd5e1}.twin-dev-marker.warn i{background:#facc15;box-shadow:0 0 8px #facc1580}.twin-dev-marker.mid i{background:#fb923c;box-shadow:0 0 8px #fb923c8c}.twin-dev-marker.bad i{background:#ef4444;box-shadow:0 0 10px #ef444499}.twin-dev-marker.type-meter i{background:#38bdf8}.twin-dev-marker.type-breaker i{background:#22d3ee}.twin-dev-marker.type-tr i{background:#a78bfa}.twin-dev-marker.type-panel i{background:#60a5fa}.twin-dev-marker.type-end i{background:#34d399}.twin-dev-marker.linked{border-color:#22c55ea6;box-shadow:0 0 14px #22c55e40}.twin-dev-marker.dim{opacity:.35}.twin-dev-marker.室外机,.twin-dev-marker.odu{border-radius:10px;padding:7px 10px}.twin-dev-float{min-width:168px;top:50%;left:calc(100% + 8px);transform:translateY(-50%)}.twin-dev-float em{color:var(--twin-cyan);margin-top:4px;font-size:11px;font-style:normal;display:block}.twin-badge.ok{color:#86efac;background:#22c55e33}.twin-badge.idle{color:#93c5fd;background:#60a5fa33}.twin-badge.off{color:#cbd5e1;background:#94a3b833}.twin-badge.warn{color:#fde68a;background:#facc1533}.twin-badge.mid{color:#fdba74;background:#fb923c33}.twin-badge.bad{color:#fca5a5;background:#ef444433}.twin-alert-list-sm{max-height:160px}.twin-tabs-wrap{margin-bottom:8px;overflow-x:auto}.twin-tabs-wrap .segmented{width:max-content;min-width:100%}.twin-bottombar-stack{flex-direction:column;align-items:stretch;gap:8px}.twin-filter-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.twin-filter-row>span{color:var(--twin-muted);font-size:12px}.twin-filter-row select{height:30px;color:var(--twin-text);background:#020c1ba6;border:1px solid #38bdf840;border-radius:8px;padding:0 8px}.twin-topo-hint{color:var(--twin-muted);z-index:4;background:#081830cc;border:1px dashed #38bdf859;border-radius:12px;flex-direction:column;align-items:center;gap:8px;padding:12px 16px;font-size:12.5px;display:flex;position:absolute;top:18%;left:50%;transform:translate(-50%)}.twin-hvac-links{pointer-events:none;z-index:2;width:100%;height:100%;position:absolute;inset:0}.twin-hvac-links line{stroke:#38bdf840;stroke-width:.4px}.twin-hvac-links line.on{stroke:#22c55eb3;stroke-width:.55px}.twin-confirm{color:var(--text)}.twin-confirm .twin-mini-hint,.twin-confirm .twin-feature-list{color:var(--text-2)}.twin-topo-tabs{margin:0}.twin-topo-tabs .segmented{background:#020c1b8c;border-color:#38bdf833}.twin-topo-tabs .segmented button{color:var(--twin-muted)}.twin-topo-tabs .segmented button.on{color:#e0f2fe;background:#0ea5e940}.twin-topo-filters{background:#08162a8c;border:1px solid #38bdf82e;border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;display:flex}.twin-topo-filters select,.twin-inline-input{height:32px;color:var(--twin-text);background:#020c1ba6;border:1px solid #38bdf840;border-radius:8px;padding:0 8px}.twin-inline-input{width:88px}.twin-topo-scene{background:radial-gradient(circle at 30% 20%,#38bdf81a,#0000 40%),linear-gradient(#0a1730,#07111f);min-height:520px}.twin-topo-svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.twin-topo-link{fill:none;stroke-width:.35px}.twin-topo-link.elec{stroke:#38bdf8}.twin-topo-link.ctrl{stroke:#34d399;stroke-dasharray:1.2 .8}.twin-topo-link.comm{stroke:#a78bfa;stroke-dasharray:.6 .6}.twin-topo-link.space{stroke:#94a3b88c}.twin-topo-node{color:#e2e8f0;text-align:left;cursor:pointer;z-index:3;background:#081830eb;border:1px solid #38bdf847;border-radius:10px;min-width:108px;padding:8px 10px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 8px 20px #0000004d}.twin-topo-node small{color:var(--twin-muted);font-size:10.5px;display:block}.twin-topo-node strong{margin-top:2px;font-size:12px;display:block}.twin-topo-node em{color:#fdba74;margin-top:3px;font-size:10.5px;font-style:normal;display:block}.twin-topo-node.on{z-index:5;border-color:#38bdf8bf;box-shadow:0 0 18px #0ea5e959}.twin-topo-node.linked{border-color:#34d399b3;box-shadow:0 0 14px #34d3994d}.twin-topo-node.ok{border-left:3px solid #22c55e}.twin-topo-node.off{border-left:3px solid #94a3b8}.twin-topo-node.mid{border-left:3px solid #fb923c}.twin-topo-node.bad{border-left:3px solid #ef4444}.twin-link-legend{grid-template-columns:1fr 1fr;gap:6px;font-size:11.5px;display:grid}.twin-link-legend span:before{content:"";vertical-align:middle;width:14px;height:2px;margin-right:6px;display:inline-block}.twin-link-legend .elec:before{background:#38bdf8}.twin-link-legend .ctrl:before{background:#34d399}.twin-link-legend .comm:before{background:#a78bfa}.twin-link-legend .space:before{background:#94a3b8}.twin-config-stage{min-height:420px}.twin-config-preview{min-height:400px}.twin-config-core{z-index:4;position:absolute;top:12%;left:50%;transform:translate(-50%)}.twin-config-table-card{margin-top:2px}.twin-config-table-card>header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.twin-check-list{flex-direction:column;gap:6px;display:flex}.twin-check-list>div{background:#0f172a66;border-radius:8px;justify-content:space-between;gap:8px;padding:7px 8px;font-size:12px;display:flex}.twin-check-list>div.ok b{color:#86efac}.twin-check-list>div.bad b{color:#fdba74}@media (max-width:1280px){.twin-stage{grid-template-columns:1fr}.twin-scene{min-height:420px}.twin-tree{max-height:200px}}.mon-page{flex-direction:column;gap:14px;margin-bottom:20px;display:flex}.mon-filter{margin-bottom:0}.mon-hint{margin:-4px 0 2px}.mon-kpi{margin-bottom:0}.mon-rank-row{grid-template-columns:48px 72px 1fr 110px 52px;align-items:center;gap:10px;width:100%;padding:4px 0;display:grid}.mon-rank-row .bar-track{min-width:0}.mon-rank-row em{text-align:right;font-size:12px;font-style:normal}.mon-split{grid-template-columns:220px minmax(0,1fr);gap:14px;min-height:260px;display:grid}.mon-split-main{border:1px solid var(--line);background:#f8fafc;border-radius:12px;padding:12px}.space-tree{flex-direction:column;gap:2px;max-height:420px;display:flex;overflow:auto}.space-item{width:100%;height:30px;color:var(--text-2);border-radius:6px;align-items:center;gap:6px;padding:0 8px;font-size:12.5px;display:flex}.space-item:hover,.space-item.on{color:var(--blue);background:#1d4ed814}.space-dot{background:var(--text-3);border-radius:50%;width:5px;height:5px;margin:0 4px}.mon-tabs{background:#f1f5f9;border-radius:10px;gap:4px;margin-bottom:14px;padding:3px;display:flex}.mon-tabs button{height:30px;color:var(--text-3);border-radius:8px;flex:1;font-size:12px;font-weight:500}.mon-tabs button.on{color:var(--blue);box-shadow:var(--shadow-sm);background:#fff}.mon-drawer{width:min(460px,100%)}.elec-live-panel{padding-bottom:18px}.elec-live-panel .panel-head{flex-wrap:wrap;align-items:flex-start}.elec-live-panel .panel-head-right{max-width:100%}.elec-live-tools{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.elec-live-tools label{color:var(--text-2);align-items:center;gap:6px;font-size:12px;display:inline-flex}.elec-live-tools select{border:1px solid var(--line-strong);background:#fff;border-radius:7px;height:28px;padding:0 8px}.elec-live-meta{color:var(--text-2);border:1px solid var(--line);background:#f8fafc;border-radius:10px;flex-wrap:wrap;gap:14px 18px;margin-bottom:14px;padding:10px 12px;font-size:12.5px;display:flex}.elec-live-meta span{align-items:center;gap:6px;display:inline-flex}.elec-live-top{grid-template-columns:minmax(0,1.15fr) minmax(280px,.95fr);gap:16px;margin-bottom:14px;display:grid}.elec-ring-row{border:1px solid var(--line);background:radial-gradient(420px 180px at 20% 20%,#0ea5e914,#0000 60%),linear-gradient(#fbfdff,#f5f8fc);border-radius:14px;flex-wrap:wrap;justify-content:space-around;align-items:center;gap:12px;min-height:200px;padding:16px 12px;display:flex}.ring-gauge{flex:none;position:relative}.ring-gauge svg{width:100%;height:100%;display:block}.ring-gauge-center{flex-direction:column;justify-content:center;align-items:center;line-height:1.15;display:flex;position:absolute;inset:0}.ring-gauge-center small{color:var(--text-3);font-size:11px}.ring-gauge-center b{letter-spacing:-.4px;margin-top:2px;font-size:22px;font-weight:750}.ring-gauge-center em{color:var(--text-3);font-size:11px;font-style:normal}.phase-quick-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.phase-quick{border:1px solid var(--line);background:#fff;border-radius:12px;flex-direction:column;gap:8px;padding:12px;display:flex}.phase-quick strong{border-bottom:1px solid var(--line);padding-bottom:6px;font-size:13px}.phase-quick>div{color:var(--text-3);justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}.phase-quick b{color:var(--text);font-size:14px}.phase-quick.tone-a{border-top:3px solid #f59e0b}.phase-quick.tone-b{border-top:3px solid #06b6d4}.phase-quick.tone-c{border-top:3px solid #ef4444}.phase-quick.tone-meta{border-top:3px solid #1d4ed8}.elec-param-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px;display:grid}.elec-param-card{border:1px solid var(--line);background:#fff;border-radius:12px;min-width:0;overflow:hidden}.elec-param-card header{color:#fff;background:linear-gradient(135deg,#0f766e,#0ea5e9);justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.elec-param-card header h4{font-size:13px;font-weight:650}.elec-param-card header span{opacity:.92;font-size:12px}.elec-param-card ul{flex-direction:column;display:flex}.elec-param-card li{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:9px 12px;font-size:12.5px;display:flex}.elec-param-card li span{color:var(--text-2)}.elec-param-card li b{font-size:13px}.elec-param-card li em{color:var(--text-3);margin-left:2px;font-size:11px;font-style:normal;font-weight:500}.elec-param-card li.tone-a span:before,.elec-param-card li.tone-b span:before,.elec-param-card li.tone-c span:before{content:"";vertical-align:middle;border-radius:2px;width:7px;height:7px;margin-right:6px;display:inline-block}.elec-param-card li.tone-a span:before{background:#f59e0b}.elec-param-card li.tone-b span:before{background:#06b6d4}.elec-param-card li.tone-c span:before{background:#ef4444}.elec-param-card li.tone-total b{color:var(--blue)}.elec-param-card li.tone-meta{background:#f8fafc}.elec-chart-block{border:1px solid var(--line);background:#fbfdff;border-radius:12px;padding:12px}.elec-chart-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.elec-chart-head strong{font-size:14px}.topology-node em{color:var(--text-3);font-size:10.5px;font-style:normal}.water-rt-dash{border:1px solid var(--line);background:#f1f5f9;border-radius:14px;flex-direction:column;gap:12px;padding:14px;display:flex}.water-rt-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.water-rt-head h2{margin:0;font-size:18px;font-weight:750}.water-rt-head p{color:var(--text-3);margin:2px 0 8px;font-size:12.5px}.water-rt-tag{color:#1d4ed8;background:#2563eb1a;border:1px solid #2563eb38;border-radius:999px;align-items:center;height:24px;padding:0 10px;font-size:11.5px;font-weight:650;display:inline-flex}.water-rt-tools{flex-wrap:wrap;gap:6px;display:flex}.water-live-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.water-live-grid>.panel{background:#fff;min-width:0;min-height:360px;overflow:hidden;box-shadow:0 1px 2px #0f172a0a}.water-live-head{justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:8px;display:flex}.water-live-head span{color:var(--text-3);font-size:12px;display:block}.water-live-head b{letter-spacing:-.4px;margin-top:2px;font-size:28px;font-weight:750;display:block}.water-live-head em{color:var(--text-3);margin-left:4px;font-size:13px;font-style:normal;font-weight:500}.water-live-head small{color:var(--text-3);font-size:12px}.live-badge{color:#fff;letter-spacing:.8px;background:#ef4444;border-radius:999px;align-items:center;gap:6px;height:24px;padding:0 10px;font-size:11px;font-weight:800;animation:1.6s ease-out infinite livePulse;display:inline-flex;box-shadow:0 0 #ef444473}.live-badge:before{content:"";background:#fff;border-radius:50%;width:6px;height:6px}@keyframes livePulse{0%{box-shadow:0 0 #ef444473}70%{box-shadow:0 0 0 8px #ef444400}to{box-shadow:0 0 #ef444400}}.tank-gauge{flex-direction:column;align-items:center;gap:4px;padding:8px 0 4px;display:flex}.tank-gauge-svg{width:min(100%,260px);height:auto}.tank-gauge-value{fill:var(--text);font-family:var(--font-num);font-size:34px;font-weight:750}.tank-gauge-unit{fill:var(--text-3);font-size:12px}.tank-gauge-scale{fill:var(--text-3);font-family:var(--font-num);font-size:11px}.tank-gauge strong{color:var(--text-2);font-size:13px}.tank-mini-list{flex-direction:column;gap:6px;margin-top:10px;display:flex}.tank-mini{border:1px solid var(--line);background:#f8fafc;border-radius:8px;grid-template-columns:1fr auto auto;align-items:center;gap:10px;width:100%;padding:8px 10px;font-size:12.5px;display:grid}.tank-mini:hover{border-color:#0ea5e94d}.tank-mini b{font-size:13px}.tank-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.tank-card{text-align:left;border:1px solid var(--line);cursor:pointer;background:#f8fafc;border-radius:12px;flex-direction:column;gap:8px;width:100%;padding:12px;display:flex}.tank-card:hover{border-color:#0ea5e959}.tank-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.tank-visual{background:#e8eef5;border-radius:10px;height:110px;position:relative;overflow:hidden}.tank-fill{background:linear-gradient(#06b6d4bf,#1d4ed88c);position:absolute;bottom:0;left:0;right:0}.tank-visual b{color:var(--text);place-items:center;font-size:22px;display:grid;position:absolute;inset:0}.tank-card small{color:var(--text-3);font-size:11.5px}.vrf-switch{gap:8px;margin-bottom:12px;display:flex}.vrf-switch button{height:30px;color:var(--text-2);border:1px solid var(--line-strong);background:#fff;border-radius:8px;padding:0 12px}.vrf-switch button.on{color:var(--blue);background:#1d4ed814;border-color:#1d4ed859}.vrf-arch{flex-direction:column;gap:12px;display:flex}.vrf-arch-legend{color:var(--text-3);flex-wrap:wrap;align-items:center;gap:10px 16px;font-size:12.5px;display:flex}.vrf-arch-legend span{align-items:center;gap:6px;display:inline-flex}.vrf-arch-legend i{border-radius:999px;width:18px;height:3px}.vrf-arch-legend i.vrf{background:#22c55e}.vrf-arch-legend i.lan{background:#334155}.vrf-arch-legend i.io{background:#3b82f6}.vrf-arch-legend em{color:#dc2626;margin-left:auto;font-size:12px;font-style:normal;font-weight:650}.vrf-arch-board{border:1px solid var(--line);background:radial-gradient(circle at 20% 30%,#22c55e0f,#0000 40%),radial-gradient(circle at 80% 20%,#3b82f60f,#0000 36%),#f8fafc;border-radius:14px;grid-template-columns:1.15fr 1fr 1fr .9fr;gap:12px;padding:14px;display:grid}.vrf-arch-col{flex-direction:column;gap:10px;min-width:0;display:flex;position:relative}.vrf-arch-col>header{color:var(--text-3);letter-spacing:.3px;font-size:12px;font-weight:700}.vrf-arch-link-label{border-radius:999px;align-self:flex-start;padding:2px 8px;font-size:11px;font-weight:650}.vrf-arch-link-label.green{color:#15803d;background:#22c55e1f}.vrf-arch-link-label.dark{color:#334155;background:#3341551a}.vrf-arch-link-label.blue{color:#1d4ed8;background:#3b82f61f}.vrf-arch-card{text-align:left;border:1px solid var(--line);background:#fff;border-radius:12px;flex-direction:column;align-items:flex-start;gap:4px;width:100%;padding:12px;transition:border-color .15s,box-shadow .15s;display:flex}.vrf-arch-card:hover{border-color:#1d4ed859;box-shadow:0 8px 18px #0f172a0f}.vrf-arch-card strong{font-size:13px;font-weight:750}.vrf-arch-card small{color:var(--text-3);font-size:11.5px}.vrf-arch-card>em{color:var(--text-2);font-size:11px;font-style:normal}.vrf-arch-card.mini{text-align:center;align-items:center;padding:10px}.vrf-arch-art{border-radius:10px;place-items:center;width:56px;height:44px;margin-bottom:4px;display:grid}.vrf-arch-art.odu{color:#0369a1;background:linear-gradient(160deg,#e0f2fe,#bae6fd)}.vrf-arch-art.idu{color:#0f766e;background:#14b8a61f;width:36px;height:28px}.vrf-arch-bus{color:#15803d;background:linear-gradient(90deg,#0000,#22c55e1f,#0000);border-left:3px solid #22c55e;border-right:3px solid #22c55e;justify-content:center;align-items:center;height:28px;font-size:11px;font-weight:700;display:flex}.vrf-arch-idu-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.vrf-arch-card.idu{text-align:center;align-items:center;padding:8px}.vrf-arch-card.idu.st-告警,.vrf-arch-card.idu.st-故障{background:#ef44440a;border-color:#ef444459}.vrf-arch-card.idu.st-运行{border-color:#0ea5e959}.vrf-arch-card.idu.st-离线{opacity:.7}.vrf-arch-note{color:var(--text-3);margin:0;font-size:11.5px}.vrf-arch-panel{color:#94a3b8;background:linear-gradient(160deg,#0f172a,#1e293b);border-radius:10px;width:100%;height:88px;margin-bottom:6px;padding:10px;position:relative}.vrf-arch-panel-grid{grid-template-columns:repeat(4,1fr);gap:6px;height:100%;display:grid}.vrf-arch-panel-grid i{background:#0ea5e98c;border-radius:4px;display:block}.vrf-arch-panel-grid i.off{background:#94a3b840}.vrf-arch-panel-grid i.warn{background:#f59e0bb3}.vrf-arch-panel>svg{position:absolute;bottom:8px;right:10px}.vrf-arch-cap{color:#dc2626;margin-top:4px;font-size:12px;font-weight:700}.vrf-arch-stats{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.vrf-arch-stats>div{border:1px solid var(--line);background:#fff;border-radius:8px;flex-direction:column;gap:2px;padding:8px;display:flex}.vrf-arch-stats span{color:var(--text-3);font-size:11px}.vrf-arch-stats b{font-size:16px}.vrf-arch-net-stack,.vrf-arch-io,.vrf-arch-devices{flex-direction:column;gap:8px;display:flex}.vrf-arch-remote{flex-direction:column;gap:8px;padding-top:4px;display:flex}.vrf-arch-remote>span{color:var(--text-3);font-size:11.5px;font-weight:650}.vrf-arch-devices{grid-template-columns:1fr 1fr;gap:8px;display:grid}.vrf-wifi{color:#ef4444;margin-top:2px}.vrf-arch-card.io-led{color:#ca8a04;background:#facc151a;border-color:#eab30859}.vrf-arch-indoors{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.vrf-indoor{border:1px solid var(--line);background:#fbfdff;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:12px;display:flex}.vrf-indoor.st-告警,.vrf-indoor.st-故障{background:#ef44440a;border-color:#ef444459}.vrf-indoor.st-运行{border-color:#0ea5e959}.vrf-indoor.st-离线{opacity:.7}@media (max-width:1280px){.vrf-arch-board{grid-template-columns:1fr 1fr}}@media (max-width:900px){.vrf-arch-board{grid-template-columns:1fr}}.lux-grid{grid-template-columns:1fr;gap:10px;display:grid}.lux-card{border:1px solid var(--line);background:#f8fafc;border-radius:12px;flex-direction:column;gap:4px;padding:12px;display:flex}.lux-card b{font-size:24px}.lux-card em{color:var(--text-3);font-size:12px;font-style:normal}.lux-card small{color:var(--text-3);font-size:11.5px}.mon-light-map{min-height:280px}.light-pin{border:1px solid var(--line);box-shadow:var(--shadow-sm);background:#fffffff2;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;display:flex;position:absolute;transform:translate(-50%,-50%)}.light-pin i{background:var(--text-3);border-radius:50%;width:8px;height:8px}.light-pin.on i{background:var(--amber);box-shadow:0 0 0 3px #f59e0b2e}.light-pin.warn{border-color:#f59e0b73}.light-pin.fault i{background:var(--red)}.light-pin span{font-size:11.5px;font-weight:600}.lt-map{grid-template-columns:240px minmax(0,1fr);gap:12px;min-height:520px;display:grid}.lt-map-side{border:1px solid var(--line);background:#f8fafc;border-radius:12px;flex-direction:column;gap:12px;min-width:0;padding:10px;display:flex}.lt-map-search{border:1px solid var(--line);height:34px;color:var(--text-3);background:#fff;border-radius:8px;align-items:center;gap:8px;padding:0 10px;display:flex}.lt-map-search input{background:0 0;border:0;outline:none;flex:1;min-width:0;font-size:12.5px}.lt-map-block strong{color:var(--text-3);margin-bottom:8px;font-size:12px;display:block}.lt-map-list{flex-direction:column;gap:4px;max-height:180px;display:flex;overflow:auto}.lt-map-list button{text-align:left;background:#fff;border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;width:100%;padding:8px 10px;font-size:12.5px;display:flex}.lt-map-list button span{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.lt-map-list button small{color:var(--text-3);font-size:10.5px}.lt-map-list button.on{background:#2563eb0f;border-color:#2563eb59}.lt-map-list button:hover{border-color:#2563eb40}.lt-empty{color:var(--text-3);padding:10px;font-size:12px;font-style:normal;display:block}.lt-dot{background:#94a3b8;border-radius:50%;flex:none;width:8px;height:8px}.lt-dot.on{background:#f59e0b;box-shadow:0 0 0 3px #f59e0b2e}.lt-dot.fault{background:#ef4444;box-shadow:0 0 0 3px #ef444429}.lt-map-main{border:1px solid var(--line);background:#e8eef5;border-radius:12px;min-width:0;position:relative;overflow:hidden}.lt-map-tools{z-index:5;border:1px solid var(--line);box-shadow:var(--shadow-sm);background:#fffffff2;border-radius:10px;align-items:center;gap:8px;padding:6px;display:flex;position:absolute;top:10px;left:10px}.lt-map-canvas{height:100%;min-height:520px;overflow:hidden}.lt-map-world{width:100%;height:100%;min-height:520px;transform:scale(var(--lt-zoom,1));transform-origin:50%;background:linear-gradient(#94a3b81f 1px,#0000 1px) 0 0/32px 32px,linear-gradient(90deg,#94a3b81f 1px,#0000 1px) 0 0/32px 32px,linear-gradient(160deg,#dbe7f3 0%,#eef3f8 40%,#e4efe8 100%);position:relative}.lt-map-roads{border:10px solid #94a3b859;border-radius:40% 30% 45% 35%;position:absolute;inset:18% 10% 22% 8%;box-shadow:inset 0 0 0 2px #ffffff80}.lt-map-building{pointer-events:none;background:linear-gradient(160deg,#fffffff2,#cbd5e1d9);border:1px solid #64748b59;border-radius:6px;align-items:flex-end;padding:6px 8px;display:flex;position:absolute;box-shadow:0 6px 14px #0f172a14}.lt-map-building span{color:#334155;font-size:11px;font-weight:650}.lt-pole{z-index:2;background:0 0;border:0;flex-direction:column;align-items:center;gap:4px;display:flex;position:absolute;transform:translate(-50%,-100%)}.lt-pole i{background:#64748b;border:2px solid #fff;border-radius:50% 50% 50% 0;width:14px;height:14px;transform:rotate(-45deg);box-shadow:0 4px 10px #0f172a33}.lt-pole.on i{background:#f59e0b;box-shadow:0 0 0 4px #f59e0b38,0 4px 10px #0f172a2e}.lt-pole.fault i{background:#ef4444;box-shadow:0 0 0 4px #ef444433,0 4px 10px #0f172a2e}.lt-pole.active i{outline-offset:2px;outline:2px solid #2563eb}.lt-pole span{text-overflow:ellipsis;white-space:nowrap;color:#0f172a;background:#ffffffeb;border:1px solid #94a3b859;border-radius:999px;max-width:88px;padding:2px 6px;font-size:10.5px;font-weight:650;overflow:hidden}.lt-pole:hover span,.lt-pole.active span{border-color:#2563eb73}.lt-map-layers{z-index:5;border:1px solid var(--line);min-width:150px;box-shadow:var(--shadow-sm);background:#fffffff5;border-radius:10px;flex-direction:column;gap:8px;padding:10px 12px;font-size:12.5px;display:flex;position:absolute;top:10px;right:10px}.lt-layer-title{color:var(--text-2);align-items:center;gap:6px;font-weight:700;display:flex}.lt-map-layers label{color:var(--text-2);align-items:center;gap:8px;display:flex}.lt-layer-legend{border-top:1px dashed var(--line);color:var(--text-3);flex-direction:column;gap:4px;padding-top:6px;font-size:11.5px;display:flex}.lt-layer-legend span{align-items:center;gap:6px;display:inline-flex}.lt-layer-legend i{background:#94a3b8;border-radius:50%;width:8px;height:8px}.lt-layer-legend i.on{background:#f59e0b}.lt-layer-legend i.fault{background:#ef4444}.lt-map-panels{z-index:6;pointer-events:none;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) minmax(220px,1.3fr) minmax(160px,.9fr);gap:8px;display:grid;position:absolute;bottom:10px;left:10px;right:10px}.lt-panel{pointer-events:auto;border:1px solid var(--line);background:#fffffff5;border-radius:10px;padding:10px;box-shadow:0 8px 20px #0f172a1a}.lt-panel.wide{min-width:0}.lt-panel>header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.lt-panel>header strong{color:#1d4ed8;font-size:12px}.lt-panel>header em{color:var(--text-3);font-size:11px;font-style:normal}.lt-panel h4{margin:0 0 2px;font-size:14px;font-weight:750}.lt-panel>p{color:var(--text-3);margin:0 0 8px;font-size:11.5px}.lt-lamp-list{flex-direction:column;gap:4px;display:flex}.lt-lamp-list button{text-align:left;background:#f8fafc;border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;width:100%;padding:6px 8px;font-size:12px;display:flex}.lt-lamp-list button.on{background:#2563eb0f;border-color:#2563eb59}.lt-panel-actions{flex-wrap:wrap;gap:6px;margin-bottom:6px;display:flex}@media (max-width:1280px){.lt-map{grid-template-columns:1fr}.lt-map-side{max-height:none}.lt-map-list{max-height:120px}.lt-map-panels{grid-template-columns:1fr 1fr;max-height:42%;overflow:auto}}@media (max-width:900px){.lt-map-panels{grid-template-columns:1fr}.lt-map-layers{display:none}}.mon-flow{min-height:220px}.flow-arrow{background:linear-gradient(90deg,#1d4ed833,#06b6d4b3);border-radius:999px;height:3px;position:absolute;transform:translateY(-50%)}.flow-node{min-width:110px}.wr-iso{grid-template-columns:minmax(0,1fr) minmax(260px,300px);align-items:stretch;gap:14px;display:grid}.wr-iso-toolbar{flex-wrap:wrap;grid-column:1/-1;justify-content:space-between;align-items:center;gap:10px;display:flex}.wr-iso-metrics{color:var(--text-3);flex-wrap:wrap;gap:8px 14px;font-size:12.5px;display:flex}.wr-iso-metrics b{color:var(--text);margin-left:4px;font-size:14px}.wr-iso-toolbar em{color:var(--text-3);font-size:12px;font-style:normal}.wr-iso-board{border:1px solid var(--line);background:radial-gradient(circle at 18% 28%,#0ea5e914,#0000 36%),radial-gradient(circle at 78% 30%,#10b9810f,#0000 32%),linear-gradient(#fbfdff 0%,#f1f5f9 100%);border-radius:14px;min-height:420px;position:relative;overflow:hidden}.wr-iso-grid{pointer-events:none;background-image:linear-gradient(#94a3b81f 1px,#0000 1px),linear-gradient(90deg,#94a3b81f 1px,#0000 1px);background-size:28px 28px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(#000 45%,#0000 85%);mask-image:radial-gradient(#000 45%,#0000 85%)}.wr-iso-pipes{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.wr-iso-link{fill:none;stroke:#38bdf8;stroke-width:.55px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1.6 1.1;opacity:.9;animation:1.6s linear infinite wrIsoFlow}@keyframes wrIsoFlow{to{stroke-dashoffset:-5.4px}}.wr-iso-node{text-align:center;z-index:2;background:#ffffffeb;border:1px solid #94a3b859;border-radius:14px;flex-direction:column;align-items:center;gap:4px;min-width:108px;padding:8px 10px 10px;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 8px 20px #0f172a0f}.wr-iso-node:hover{z-index:3;border-color:#0ea5e98c;transform:translate(-50%,calc(-50% - 2px))}.wr-iso-node.on{z-index:4;border-color:#2563eba6;box-shadow:0 0 0 3px #2563eb1f,0 10px 24px #0f172a14}.wr-iso-node strong{letter-spacing:.2px;font-size:13px;font-weight:750}.wr-iso-node>small{color:var(--text-3);font-size:11px}.wr-iso-data{flex-direction:column;gap:1px;margin-top:2px;display:flex}.wr-iso-data em{color:#334155;font-style:normal;font-family:var(--font-num);font-size:11px;font-weight:600}.wr-iso-dot{background:#94a3b8;border-radius:50%;width:8px;height:8px;position:absolute;top:10px;right:10px}.wr-iso-dot.ok{background:#10b981;box-shadow:0 0 0 3px #10b9812e}.wr-iso-art{place-items:center;width:78px;height:56px;margin-bottom:2px;display:grid}.wr-iso-art.dam{width:86px;height:54px;position:relative}.wr-iso-dam-wall{clip-path:polygon(0 20%,100% 0,100% 100%,0 100%);background:linear-gradient(135deg,#94a3b8,#64748b);border-radius:2px;width:50px;height:36px;position:absolute;top:8px;left:18px}.wr-iso-dam-water{opacity:.9;background:linear-gradient(90deg,#7dd3fc,#0ea5e9);border-radius:0 0 10px 10px;height:16px;position:absolute;bottom:4px;left:8px;right:8px}.wr-iso-art.pipe{align-items:center;gap:4px;display:flex}.wr-iso-art.pipe i{background:linear-gradient(#7dd3fc,#0284c7);border-radius:999px;width:16px;height:10px;box-shadow:0 2px #0369a1}.wr-iso-art.tank{width:70px;height:58px;position:relative}.wr-iso-tank-body{background:#e2e8f0;border:2px solid #94a3b8;border-radius:8px 8px 10px 10px;position:absolute;inset:4px 12px 8px;overflow:hidden}.wr-iso-tank-fill{background:linear-gradient(#7dd3fc,#0284c7);position:absolute;bottom:0;left:0;right:0}.wr-iso-art.tank b{color:#0369a1;font-size:10px;font-weight:700;position:absolute;bottom:-2px;left:0;right:0}.wr-iso-art.sensor{color:#2563eb;background:#2563eb14;border-radius:12px}.wr-iso-art.pumps{align-items:flex-end;gap:6px;display:flex}.wr-iso-pump{color:#64748b;background:linear-gradient(#f8fafc,#e2e8f0);border:1px solid #cbd5e1;border-radius:8px 8px 4px 4px;flex-direction:column;align-items:center;gap:2px;width:28px;height:42px;padding-top:6px;display:flex}.wr-iso-pump.run{color:#0369a1;background:linear-gradient(#e0f2fe,#7dd3fc);border-color:#38bdf8}.wr-iso-pump em{font-size:9px;font-style:normal;font-weight:700}.wr-iso-art.dis{align-items:flex-end;gap:5px;height:52px;display:flex}.wr-iso-art.dis span{background:linear-gradient(#fef08a,#eab308);border:1px solid #ca8a04;border-radius:8px 8px 3px 3px;width:16px;height:36px}.wr-iso-art.dis span:nth-child(2){background:linear-gradient(#bae6fd,#0ea5e9);border-color:#0284c7;height:42px}.wr-iso-art.dis .tower{background:linear-gradient(#cbd5e1,#64748b);border-color:#475569;width:12px;height:48px}.wr-iso-art.net{color:#1d4ed8;background:#2563eb14;border-radius:12px}.wr-iso-aside{border:1px solid var(--line);background:#fff;border-radius:14px;min-width:0;padding:12px}.wr-iso-aside>header{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px;display:flex}.wr-iso-aside h3{margin:4px 0 2px;font-size:16px;font-weight:750}.wr-iso-aside header p{color:var(--text-3);margin:0;font-size:12px}.wr-iso-aside-ico{color:#0369a1;background:#0ea5e91f;border-radius:10px;place-items:center;width:36px;height:36px;display:grid}.wr-dist-wrap{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.wr-dist-list{flex:1;grid-template-columns:1fr 1fr;gap:8px;min-width:200px;display:grid}.wr-dist-list>div{border:1px solid var(--line);background:#f8fafc;border-radius:8px;justify-content:space-between;gap:8px;padding:8px 10px;font-size:12.5px;display:flex}.wr-pump-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.wr-pump-card{text-align:left;border:1px solid var(--line);background:#fff;border-radius:12px;flex-direction:column;gap:6px;padding:12px;display:flex}.wr-pump-card:hover{border-color:#0ea5e959}.wr-pump-card.st-故障{background:#ef444408;border-color:#ef444459}.wr-pump-card.st-停机{background:#f8fafc}.wr-pump-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.wr-pump-card small{color:var(--text-3);font-size:11.5px}.wr-pump-card em{font-size:12px;font-style:normal}.viz-kv.compact>div{padding:6px 8px}.viz-kv.compact b{font-size:12.5px}.wr-quality-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.wr-quality-card{border:1px solid var(--line);background:#f8fafc;border-radius:10px;flex-direction:column;gap:6px;padding:12px;display:flex}.wr-quality-card span{color:var(--text-3);font-size:12px}.wr-quality-card b{font-size:18px}@media (max-width:1280px){.wr-iso{grid-template-columns:1fr}.wr-iso-board{min-height:460px}}@media (max-width:900px){.wr-iso-board{min-height:520px}.wr-iso-node{min-width:92px;padding:6px 8px 8px}.wr-iso-art{width:64px;height:48px}.wr-pump-grid,.wr-quality-grid,.wr-dist-list{grid-template-columns:1fr}}.hw-iso{grid-template-columns:minmax(0,1fr) minmax(260px,300px);align-items:stretch;gap:14px;display:grid}.hw-iso-toolbar{flex-wrap:wrap;grid-column:1/-1;justify-content:space-between;align-items:center;gap:10px;display:flex}.hw-iso-legend,.hw-iso-metrics{color:var(--text-3);flex-wrap:wrap;align-items:center;gap:10px 14px;font-size:12.5px;display:flex}.hw-iso-legend span{align-items:center;gap:6px;display:inline-flex}.hw-iso-legend i{border-radius:999px;width:18px;height:4px}.hw-iso-legend i.hot{background:linear-gradient(90deg,#fb7185,#f43f5e)}.hw-iso-legend i.cold{background:linear-gradient(90deg,#38bdf8,#0ea5e9)}.hw-iso-legend i.return{background:linear-gradient(90deg,#fbbf24,#f59e0b)}.hw-iso-metrics b{color:var(--text);margin-left:4px;font-size:14px}.hw-iso-board{border:1px solid var(--line);background:radial-gradient(circle at 20% 30%,#fb718514,#0000 36%),radial-gradient(circle at 75% 35%,#0ea5e914,#0000 34%),linear-gradient(#fff 0%,#f8fafc 100%);border-radius:14px;min-height:440px;position:relative;overflow:hidden}.hw-iso-grid{pointer-events:none;background-image:linear-gradient(#94a3b81a 1px,#0000 1px),linear-gradient(90deg,#94a3b81a 1px,#0000 1px);background-size:28px 28px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(#000 48%,#0000 88%);mask-image:radial-gradient(#000 48%,#0000 88%)}.hw-iso-pipes{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.hw-iso-link{fill:none;stroke-width:.55px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1.5 1.1;animation:1.5s linear infinite hwIsoFlow}.hw-iso-link.hot{stroke:#f43f5e}.hw-iso-link.cold{stroke:#0ea5e9}.hw-iso-link.return{stroke:#f59e0b;animation-direction:reverse}@keyframes hwIsoFlow{to{stroke-dashoffset:-5.2px}}.hw-iso-node{text-align:center;z-index:2;background:#fffffff0;border:1px solid #94a3b859;border-radius:14px;flex-direction:column;align-items:center;gap:4px;min-width:112px;padding:8px 10px 10px;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 8px 20px #0f172a0f}.hw-iso-node:hover{z-index:3;border-color:#f43f5e73;transform:translate(-50%,calc(-50% - 2px))}.hw-iso-node.on{z-index:4;border-color:#f43f5e99;box-shadow:0 0 0 3px #f43f5e1f,0 10px 24px #0f172a14}.hw-iso-node strong{font-size:13px;font-weight:750}.hw-iso-node>small{color:var(--text-3);font-size:11px}.hw-iso-data{flex-direction:column;gap:1px;display:flex}.hw-iso-data em{color:#334155;font-style:normal;font-family:var(--font-num);font-size:11px;font-weight:600}.hw-iso-dot{background:#94a3b8;border-radius:50%;width:8px;height:8px;position:absolute;top:10px;right:10px}.hw-iso-dot.ok{background:#10b981;box-shadow:0 0 0 3px #10b9812e}.hw-iso-dot.warn{background:#f59e0b;box-shadow:0 0 0 3px #f59e0b33}.hw-iso-art{place-items:center;width:86px;height:56px;margin-bottom:2px;display:grid}.hw-iso-art.units{align-items:flex-end;gap:6px;display:flex}.hw-iso-art.units span{color:#fff;background:linear-gradient(#94a3b8,#64748b);border-radius:6px;place-items:center;width:26px;height:40px;display:grid;position:relative}.hw-iso-art.units span.ok{background:linear-gradient(#fb7185,#e11d48)}.hw-iso-art.units span.warn{background:linear-gradient(#fbbf24,#d97706)}.hw-iso-art.units i{background:#10b981;border-radius:50%;width:6px;height:6px;position:absolute;top:4px;right:4px}.hw-iso-art.units span.warn i{background:#ef4444}.hw-iso-art.hex{color:#c2410c;background:#f973161f;border-radius:12px}.hw-iso-art.tank{height:64px}.hw-iso-tank{background:#e2e8f0;border:2px solid #94a3b8;border-radius:18px 18px 8px 8px;width:42px;height:58px;position:relative;overflow:hidden}.hw-iso-tank-fill{background:linear-gradient(#fb923c,#f97316 55%,#38bdf8);position:absolute;bottom:0;left:0;right:0}.hw-iso-art.sensor{color:#2563eb;background:#2563eb14;border-radius:12px}.hw-iso-art.sensor.warn{color:#d97706;background:#f59e0b1f}.hw-iso-art.pump{align-items:flex-end;gap:6px;display:flex}.hw-iso-pump-body{color:#0f172a;background:linear-gradient(#e2e8f0,#94a3b8);border:2px solid #64748b;border-radius:50%;place-items:center;width:44px;height:44px;display:grid}.hw-iso-valve{background:#fbbf24;border-radius:3px;width:14px;height:22px;box-shadow:inset 0 -6px #ef4444}.hw-iso-valve.on{box-shadow:inset 0 -6px #10b981}.hw-iso-art.pipe{color:#be123c;background:#f43f5e14;border-radius:12px}.hw-iso-art.zone{color:#1d4ed8;background:#2563eb14;border:1px dashed #2563eb59;border-radius:10px;width:72px;height:40px;font-size:12px;font-weight:700}.hw-iso-float{z-index:1;border:1px solid var(--line);color:var(--text-3);pointer-events:none;background:#ffffffeb;border-radius:8px;flex-direction:column;gap:2px;padding:6px 10px;font-size:11.5px;display:flex;position:absolute}.hw-iso-float b{color:var(--text);font-size:13px}.hw-iso-float.cold{border-left:3px solid #0ea5e9;top:58%;left:4%}.hw-iso-float.return{border-left:3px solid #f59e0b;top:78%;right:4%}.hw-iso-aside{border:1px solid var(--line);background:#fff;border-radius:14px;min-width:0;padding:12px}.hw-iso-aside>header{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px;display:flex}.hw-iso-aside h3{margin:4px 0 2px;font-size:16px;font-weight:750}.hw-iso-aside header p{color:var(--text-3);margin:0;font-size:12px}.hw-iso-aside header>b{white-space:nowrap;font-size:16px}.hw-history{border-top:1px dashed var(--line);margin-top:12px;padding-top:10px}.hw-history strong{margin-bottom:6px;font-size:12.5px;display:block}.hw-history ul{color:var(--text-2);margin:0;padding-left:16px;font-size:12.5px}.hw-history li{margin:4px 0}@media (max-width:1280px){.hw-iso{grid-template-columns:1fr}.hw-iso-board{min-height:480px}}@media (max-width:900px){.hw-iso-board{min-height:540px}.hw-iso-node{min-width:96px;padding:6px 8px 8px}}.phase-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.phase-card{border:1px solid var(--line);background:#f8fafc;border-radius:10px;flex-direction:column;gap:6px;padding:12px;display:flex}.phase-card span{color:var(--text-3);font-size:12px}.phase-card b{font-size:18px}.classroom-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.classroom-card{text-align:left;border:1px solid var(--line);background:#fff;border-radius:12px;flex-direction:column;gap:4px;padding:12px;display:flex}.classroom-card.on{box-shadow:var(--shadow-sm);border-color:#1d4ed866}.classroom-card.normal{background:#10b9810a}.classroom-card.running{background:#0ea5e90f}.classroom-card.idle{background:#f8fafc}.classroom-card.danger{background:#ef44440d;border-color:#ef444440}.classroom-card.offline{background:#f59e0b0f}.classroom-card b{font-size:16px}.classroom-card small,.classroom-card em{color:var(--text-3);font-size:11.5px;font-style:normal}@media (max-width:1440px){.elec-param-grid{grid-template-columns:1fr 1fr}}@media (max-width:1280px){.mon-split,.vrf-arch-board,.elec-live-top,.water-live-grid{grid-template-columns:1fr}.phase-grid,.tank-grid,.classroom-grid{grid-template-columns:1fr 1fr}}@media (max-width:900px){.elec-param-grid,.phase-quick-row,.phase-grid,.tank-grid,.classroom-grid,.mon-kpi{grid-template-columns:1fr!important}.elec-live-tools{justify-content:flex-start}}.dev-page .kpi-card{cursor:pointer;text-align:left;border:1px solid #0000;width:100%}.dev-page .kpi-card.dev-kpi-on{border-color:#1d4ed873;box-shadow:0 0 0 3px #1d4ed81a}.mon-drawer.wide{width:min(640px,100%)}.dev-cat-link{cursor:pointer;display:contents}.dev-org-layout{grid-template-columns:minmax(200px,.9fr) minmax(0,1.1fr);gap:12px;display:grid}.dev-org-tree{max-height:280px;overflow:auto}.dev-org-row{text-align:left;border-radius:8px;grid-template-columns:18px 1fr auto;align-items:center;gap:6px;width:100%;padding:6px 8px;font-size:12.5px;display:grid}.dev-org-row:hover{background:#1d4ed80d}.dev-org-row.on{color:var(--blue);background:#1d4ed814;font-weight:650}.dev-org-toggle{width:18px;height:18px;color:var(--text-3);place-items:center;display:grid}.dev-org-rank{flex-direction:column;gap:8px;display:flex}.dev-org-rank-row{text-align:left;border:1px solid var(--line);background:#f8fafc;border-radius:8px;grid-template-columns:72px 1fr auto auto;align-items:center;gap:8px;width:100%;padding:8px 10px;font-size:12.5px;display:grid}.dev-org-rank-row em{font-size:11.5px;font-style:normal}.dev-gateway-list{grid-template-columns:1fr 1fr;gap:10px;display:grid}.dev-gateway-card{text-align:left;border:1px solid var(--line);background:#fff;border-radius:12px;flex-direction:column;gap:6px;padding:12px;display:flex}.dev-gateway-card.st-告警{background:#ef444408;border-color:#ef44444d}.dev-gateway-card small{color:var(--text-3);font-size:11.5px}.dev-event-feed{flex-direction:column;gap:8px;display:flex}.dev-event-feed-row{text-align:left;border:1px solid var(--line);background:#f8fafc;border-radius:10px;justify-content:space-between;gap:12px;width:100%;padding:10px 12px;display:flex}.dev-event-feed-row strong{font-size:13px;display:block}.dev-event-feed-row small{color:var(--text-3);font-size:11.5px}.dev-event-feed-meta{color:var(--text-3);flex-direction:column;align-items:flex-end;gap:4px;font-size:12px;display:flex}.dev-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px;display:grid}.dev-filter-grid label{color:var(--text-3);flex-direction:column;gap:6px;font-size:12px;display:flex}.dev-filter-grid label.wide{grid-column:1/-1}.dev-filter-grid select,.dev-filter-grid input{border:1px solid var(--line);height:34px;color:var(--text);background:#fff;border-radius:8px;padding:0 10px}.dev-search{border:1px solid var(--line);height:34px;color:var(--text-3);background:#fff;border-radius:8px;align-items:center;gap:8px;padding:0 10px;display:flex}.dev-search input{border:0;outline:none;flex:1;height:auto;padding:0}.dev-filter-actions{align-items:flex-end;gap:8px;display:flex}.dev-batch-bar{border:1px solid var(--line);background:#f8fafc;border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;padding:8px 10px;display:flex}.dev-batch-bar em{color:var(--text-3);margin-left:auto;font-size:12px;font-style:normal}.dev-check{align-items:center;gap:6px;font-size:12.5px;font-weight:650;display:inline-flex}.dev-table td small.dev-subcat{color:var(--text-3);font-size:11px;display:block}.dev-name-link{color:var(--blue);cursor:pointer;background:0 0;border:0;padding:0;font-weight:650}.dev-tag-inline{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.dev-tag-inline span,.dev-tag{color:#1d4ed8;background:#2563eb14;border-radius:999px;align-items:center;height:20px;padding:0 7px;font-size:11px;display:inline-flex}.dev-tag-wrap{flex-wrap:wrap;gap:8px;display:flex}.dev-channel-list,.dev-event-list{flex-direction:column;gap:8px;display:flex}.dev-channel-row,.dev-event-row{border:1px solid var(--line);background:#f8fafc;border-radius:8px;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:10px;font-size:12.5px;display:grid}.dev-event-row{grid-template-columns:1fr}.dev-event-row span,.dev-event-row i{color:var(--text-3);font-size:12px;font-style:normal}.dev-form-section{margin-bottom:16px}.dev-form-section h4{margin:0 0 10px;font-size:13px;font-weight:750}.dev-form-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.dev-form-grid label{color:var(--text-3);flex-direction:column;gap:6px;font-size:12px;display:flex}.dev-form-grid label.full{grid-column:1/-1}.dev-form-grid input,.dev-form-grid select{border:1px solid var(--line);height:34px;color:var(--text);background:#fff;border-radius:8px;padding:0 10px}.dev-placeholder{text-align:center;padding:36px 20px}.dev-placeholder h2{margin:8px 0 10px;font-size:22px}.dev-placeholder p{max-width:560px;color:var(--text-3);margin:0 auto 18px;line-height:1.6}.dev-placeholder-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}@media (max-width:1280px){.dev-org-layout,.dev-gateway-list,.dev-filter-grid,.dev-form-grid{grid-template-columns:1fr}.dev-filter-grid label.wide{grid-column:auto}}.dev-discover-layout{grid-template-columns:minmax(0,1.45fr) minmax(280px,.8fr);align-items:start;gap:14px;display:grid}.dev-discover-side{flex-direction:column;gap:14px;min-width:0;display:flex}.dev-row-on{background:#1d4ed80d}.dev-batch-preview{flex-direction:column;gap:8px;max-height:160px;margin-bottom:12px;display:flex;overflow:auto}.dev-batch-preview>div{border:1px solid var(--line);background:#f8fafc;border-radius:8px;flex-direction:column;gap:2px;padding:8px 10px;font-size:12.5px;display:flex}.dev-batch-preview small{color:var(--text-3)}.dev-task-list{flex-direction:column;gap:8px;display:flex}.dev-task-card{border:1px solid var(--line);background:#f8fafc;border-radius:10px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.dev-task-card small{color:var(--text-3);font-size:11.5px}.dev-inline-search{border:1px solid var(--line);min-width:220px;height:34px;color:var(--text-3);background:#fff;border-radius:8px;align-items:center;gap:8px;padding:0 10px;display:inline-flex}.dev-inline-search input{min-width:0;color:var(--text);background:0 0;border:0;outline:none;flex:1;font-size:12.5px}.dev-gw-layout{grid-template-columns:minmax(280px,.85fr) minmax(0,1.35fr);align-items:start;gap:14px;display:grid}.dev-gw-tree{flex-direction:column;gap:8px;max-height:560px;display:flex;overflow:auto}.dev-gw-tree-block{border:1px solid var(--line);background:#fff;border-radius:10px;overflow:hidden}.dev-gw-tree-gw{text-align:left;border:0;border-bottom:1px solid var(--line);background:#f8fafc;grid-template-columns:24px 1fr auto;align-items:center;gap:8px;width:100%;padding:10px;display:grid}.dev-gw-tree-gw.on{background:#1d4ed814}.dev-gw-tree-gw strong{font-size:13px;display:block}.dev-gw-tree-gw small{color:var(--text-3);font-size:11.5px}.dev-gw-tree-child{text-align:left;background:#fff;border:0;border-top:1px solid #e2e8f0cc;justify-content:space-between;gap:8px;width:100%;padding:8px 12px 8px 34px;font-size:12.5px;display:flex}.dev-gw-tree-child:hover{background:#1d4ed80a}.dev-gw-topo{grid-template-columns:1fr;gap:10px;max-height:560px;display:grid;overflow:auto}.dev-gw-topo-node{text-align:left;border:1px solid var(--line);background:#fff;border-radius:12px;flex-direction:column;gap:4px;padding:12px;display:flex}.dev-gw-topo-node.on{border-color:#1d4ed873;box-shadow:0 0 0 3px #1d4ed814}.dev-gw-topo-node.st-离线{opacity:.75}.dev-gw-topo-node small,.dev-gw-topo-node em{color:var(--text-3);font-size:11.5px;font-style:normal}.dev-gw-topo-children{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.dev-gw-topo-children span{color:var(--text-3);background:#f1f5f9;border-radius:999px;padding:3px 8px;font-size:11px}.dev-gw-topo-children span.on{color:#0369a1;background:#0ea5e91f}.dev-gw-detail-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.dev-gw-detail-head h3{margin:6px 0 2px;font-size:18px;font-weight:750}.dev-gw-detail-head p{color:var(--text-3);margin:0;font-size:12.5px}.dev-gw-detail-metrics{gap:10px;display:flex}.dev-gw-detail-metrics>div{border:1px solid var(--line);background:#f8fafc;border-radius:8px;min-width:96px;padding:8px 10px}.dev-gw-detail-metrics span{color:var(--text-3);font-size:11.5px;display:block}.dev-gw-detail-metrics b{font-size:15px}.dev-gw-drawer-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:0 16px 10px;display:grid}.dev-gw-drawer-metrics.compact{padding:0}.dev-gw-drawer-metrics>div{border:1px solid var(--line);background:#f8fafc;border-radius:10px;padding:10px}.dev-gw-drawer-metrics span{color:var(--text-3);font-size:11.5px;display:block}.dev-gw-drawer-metrics b{margin-top:4px;font-size:15px;display:block}@media (max-width:720px){.dev-gw-drawer-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}.dev-gw-relation-root{background:linear-gradient(160deg,#eff6ff,#f8fafc);border:1px solid #1d4ed833;border-radius:12px;margin-bottom:10px;padding:12px}.dev-gw-relation-root strong{font-size:14px;display:block}.dev-gw-relation-root small{color:var(--text-3);font-size:12px}.dev-gw-relation-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.dev-gw-relation-item{text-align:left;border:1px solid var(--line);background:#fff;border-radius:10px;flex-direction:column;align-items:flex-start;gap:4px;padding:10px;display:flex}.dev-gw-relation-item small{color:var(--text-3);font-size:11.5px}@media (max-width:1280px){.dev-discover-layout,.dev-gw-layout,.dev-gw-relation-list{grid-template-columns:1fr}}.dev-model-capacity{color:var(--text-2);background:#eff6ff;border:1px solid #2563eb2e;border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px 16px;padding:10px 12px;font-size:12.5px;display:flex}.dev-model-capacity em{color:var(--text-3);margin-left:auto;font-size:12px;font-style:normal}.dev-model-layout{grid-template-columns:minmax(220px,.75fr) minmax(0,1.45fr);align-items:start;gap:14px;display:grid}.dev-model-cat{max-height:640px;overflow:auto}.dev-model-cat-all,.dev-model-cat-l1,.dev-model-cat-l2{text-align:left;background:0 0;border:0;align-items:center;gap:8px;width:100%;font-size:12.5px;display:flex}.dev-model-cat-all{border-radius:8px;justify-content:space-between;margin-bottom:6px;padding:8px 10px;font-weight:650}.dev-model-cat-all.on,.dev-model-cat-l1.on,.dev-model-cat-l2.on{color:var(--blue);background:#1d4ed814}.dev-model-cat-block{border:1px solid var(--line);background:#fff;border-radius:8px;margin-bottom:4px;overflow:hidden}.dev-model-cat-l1{border-bottom:1px solid var(--line);background:#f8fafc;padding:8px;font-weight:650}.dev-model-cat-l1 b,.dev-model-cat-all b,.dev-model-cat-l2 b{color:var(--text-3);margin-left:auto;font-weight:600}.dev-model-cat-l2{border-top:1px solid #e2e8f0cc;padding:7px 10px 7px 34px}.dev-model-view-switch{background:#f1f5f9;border-radius:8px;gap:4px;padding:2px;display:inline-flex}.dev-model-view-switch button{width:28px;height:28px;color:var(--text-3);background:0 0;border:0;border-radius:6px;place-items:center;display:grid}.dev-model-view-switch button.on{color:var(--blue);box-shadow:var(--shadow-sm);background:#fff}.dev-model-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.dev-model-card{border:1px solid var(--line);background:#fff;border-radius:12px;flex-direction:column;gap:8px;padding:12px;display:flex;box-shadow:0 1px 2px #0f172a0a}.dev-model-card.on{border-color:#1d4ed866}.dev-model-card>header{grid-template-columns:auto 1fr auto;align-items:center;gap:8px;display:grid}.dev-model-card>header strong{font-size:14px;font-weight:750}.dev-model-card>header em{color:var(--text-3);font-size:11.5px;font-style:normal}.dev-model-card-art{color:#2563eb;background:radial-gradient(circle at 30% 30%,#3b82f629,#0000 55%),#f8fafc;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:6px;height:96px;display:flex}.dev-model-card-art span{color:var(--text-2);font-size:11.5px;font-weight:650}.dev-model-card-art.tone-cyan{color:#0891b2;background:radial-gradient(circle at 30% 30%,#06b6d42e,#0000 55%),#f0fdfa}.dev-model-card-art.tone-teal{color:#0f766e;background:radial-gradient(circle at 30% 30%,#14b8a62e,#0000 55%),#f0fdfa}.dev-model-card-art.tone-sky{color:#0284c7;background:radial-gradient(circle at 30% 30%,#0ea5e92e,#0000 55%),#f0f9ff}.dev-model-card-art.tone-blue{color:#1d4ed8;background:radial-gradient(circle at 30% 30%,#3b82f62e,#0000 55%),#eff6ff}.dev-model-card-art.tone-indigo{color:#4338ca;background:radial-gradient(circle at 30% 30%,#6366f12e,#0000 55%),#eef2ff}.dev-model-card-art.tone-violet{color:#7c3aed;background:radial-gradient(circle at 30% 30%,#8b5cf62e,#0000 55%),#f5f3ff}.dev-model-card-art.tone-amber{color:#d97706;background:radial-gradient(circle at 30% 30%,#f59e0b33,#0000 55%),#fffbeb}.dev-model-card-art.tone-orange{color:#ea580c;background:radial-gradient(circle at 30% 30%,#f973162e,#0000 55%),#fff7ed}.dev-model-card-art.tone-yellow{color:#ca8a04;background:radial-gradient(circle at 30% 30%,#eab30838,#0000 55%),#fefce8}.dev-model-card-art.tone-red{color:#dc2626;background:radial-gradient(circle at 30% 30%,#ef444429,#0000 55%),#fef2f2}.dev-model-card-art.tone-rose{color:#e11d48;background:radial-gradient(circle at 30% 30%,#f43f5e29,#0000 55%),#fff1f2}.dev-model-card-art.tone-green{color:#059669;background:radial-gradient(circle at 30% 30%,#10b9812e,#0000 55%),#ecfdf5}.dev-model-card-art.tone-slate{color:#475569;background:radial-gradient(circle at 30% 30%,#64748b29,#0000 55%),#f8fafc}.dev-model-list-name{align-items:center;gap:8px;display:inline-flex}.dev-model-list-ico{color:#1d4ed8;background:#eff6ff;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex}.dev-model-list-ico.tone-cyan{color:#0891b2;background:#ecfeff}.dev-model-list-ico.tone-teal{color:#0f766e;background:#f0fdfa}.dev-model-list-ico.tone-sky{color:#0284c7;background:#f0f9ff}.dev-model-list-ico.tone-blue{color:#1d4ed8;background:#eff6ff}.dev-model-list-ico.tone-indigo{color:#4338ca;background:#eef2ff}.dev-model-list-ico.tone-violet{color:#7c3aed;background:#f5f3ff}.dev-model-list-ico.tone-amber{color:#d97706;background:#fffbeb}.dev-model-list-ico.tone-orange{color:#ea580c;background:#fff7ed}.dev-model-list-ico.tone-yellow{color:#ca8a04;background:#fefce8}.dev-model-list-ico.tone-red{color:#dc2626;background:#fef2f2}.dev-model-list-ico.tone-rose{color:#e11d48;background:#fff1f2}.dev-model-list-ico.tone-green{color:#059669;background:#ecfdf5}.dev-model-list-ico.tone-slate{color:#475569;background:#f8fafc}.dev-model-card-meta{grid-template-columns:1fr 1fr;gap:6px 10px;display:grid}.dev-model-card-meta>div{flex-direction:column;gap:2px;display:flex}.dev-model-card-meta span{color:var(--text-3);font-size:11px}.dev-model-card-meta b{font-size:12.5px;font-weight:650}.dev-model-card>footer{border-top:1px dashed var(--line);gap:8px;padding-top:8px;display:flex}.dev-model-card>footer button{color:var(--text-2);background:#f1f5f9;border:0;border-radius:6px;align-items:center;gap:4px;padding:4px 8px;font-size:12px;display:inline-flex}.dev-model-card>footer button:hover{color:var(--blue);background:#1d4ed81a}.dev-wizard-steps{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.dev-wizard-steps span{color:var(--text-3);background:#f1f5f9;border-radius:999px;padding:4px 10px;font-size:12px}.dev-wizard-steps span.on{color:var(--blue);background:#1d4ed81f;font-weight:650}.dev-wizard-steps span.done{color:#047857;background:#10b9811f}@media (max-width:1440px){.dev-model-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:1280px){.dev-model-layout,.dev-model-cards{grid-template-columns:1fr}}.dev-sim-layout{grid-template-columns:minmax(0,1.45fr) minmax(320px,.9fr);align-items:stretch;gap:14px;display:grid}.dev-sim-list-panel .table-scroll{max-height:420px}.dev-sim-ops{flex-wrap:wrap;align-items:center;gap:4px;display:inline-flex}.dev-sim-ops button{color:var(--text-2);cursor:pointer;background:#0f172a0a;border:0;border-radius:6px;align-items:center;gap:2px;padding:4px 6px;font-size:11.5px;display:inline-flex}.dev-sim-ops button:hover{color:var(--blue);background:#1d4ed81a}.dev-sim-detail-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.dev-sim-detail-head h3{margin:0 0 4px;font-size:16px;font-weight:750}.dev-sim-detail-head p{color:var(--text-3);margin:0;font-size:12.5px}.dev-sim-detail-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.dev-sim-detail-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.dev-sim-detail-metrics>div{background:#0f172a06;border:1px solid #0f172a0f;border-radius:10px;padding:10px 12px}.dev-sim-detail-metrics span{color:var(--text-3);margin-bottom:4px;font-size:11.5px;display:block}.dev-sim-detail-metrics b{word-break:break-all;font-size:13.5px;font-weight:650}.dev-sim-config .filter-group{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.dev-sim-freq{color:var(--text-2);align-items:center;gap:8px;font-size:12.5px;display:inline-flex}.dev-sim-freq input{border:1px solid #0f172a1a;border-radius:8px;width:88px;height:32px;padding:0 8px}.dev-sim-payload{flex-direction:column;gap:8px;display:flex}.dev-sim-json,.dev-sim-json-edit{color:#e2e8f0;resize:vertical;background:#0f172a;border:1px solid #0f172a1a;border-radius:10px;width:100%;min-height:220px;margin:0;padding:12px 14px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.55}.dev-sim-model-pick{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px;display:grid}.dev-sim-model-card{text-align:left;cursor:pointer;background:#fff;border:1px solid #0f172a14;border-radius:10px;padding:12px}.dev-sim-model-card strong{margin-bottom:4px;font-size:13.5px;display:block}.dev-sim-model-card small{color:var(--text-3);font-size:11.5px}.dev-sim-model-card.on{border-color:#1d4ed873;box-shadow:0 0 0 3px #1d4ed814}.dev-sim-more-model{color:var(--text-2);flex-direction:column;gap:6px;font-size:12.5px;display:flex}.dev-sim-more-model select{border:1px solid #0f172a1a;border-radius:8px;height:36px;padding:0 10px}@media (max-width:1280px){.dev-sim-layout{grid-template-columns:1fr}.dev-sim-model-pick{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.dev-sim-model-pick,.dev-sim-detail-metrics{grid-template-columns:1fr}}.dev-org-mgmt-layout{grid-template-columns:minmax(280px,.85fr) minmax(0,1.35fr);align-items:stretch;gap:14px;display:grid}.dev-org-mgmt-tree{max-height:640px;overflow:auto}.dev-org-mgmt-row{text-align:left;cursor:pointer;width:100%;color:var(--text-1);background:0 0;border:0;border-radius:8px;align-items:center;gap:6px;padding:7px 8px;font-size:13px;display:flex}.dev-org-mgmt-row:hover{background:#1d4ed80d}.dev-org-mgmt-row.on{color:var(--blue);background:#1d4ed814;font-weight:650}.dev-org-mgmt-name{flex:1;align-items:center;gap:6px;min-width:0;display:inline-flex}.dev-org-mgmt-name em{color:#b45309;background:#f59e0b26;border-radius:999px;padding:1px 6px;font-size:10.5px;font-style:normal}.dev-org-mgmt-row small{color:var(--text-3);font-size:11px}.dev-org-mgmt-row b{color:var(--text-3);font-weight:600}.dev-tag-layout{grid-template-columns:minmax(260px,.75fr) minmax(0,1.45fr);align-items:stretch;gap:14px;display:grid}.dev-tag-nav-all,.dev-tag-folder,.dev-tag-set{text-align:left;cursor:pointer;width:100%;color:var(--text-1);background:0 0;border:0;border-radius:8px;align-items:center;gap:6px;padding:8px 10px;font-size:13px;display:flex}.dev-tag-nav-all{margin-bottom:6px;font-weight:650}.dev-tag-nav-all.on,.dev-tag-folder.on,.dev-tag-set.on{color:var(--blue);background:#1d4ed814;font-weight:650}.dev-tag-nav-all b,.dev-tag-folder b,.dev-tag-set b{color:var(--text-3);margin-left:auto;font-weight:600}.dev-tag-folder-block{margin-bottom:4px}.dev-tag-set{padding-left:28px;font-size:12.5px}.dev-tag-side-actions{border-top:1px solid #0f172a0f;flex-wrap:wrap;gap:8px;margin-top:12px;padding-top:12px;display:flex}@media (max-width:1280px){.dev-org-mgmt-layout,.dev-tag-layout{grid-template-columns:1fr}}.dev-vendor-logo{color:#fff;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;font-weight:750;display:inline-flex}.dev-vendor-logo-upload{align-items:center;gap:10px;display:flex}.dev-vendor-logo-upload input{text-align:center;border:1px solid #0f172a1a;border-radius:8px;width:64px;height:36px}.dev-vendor-intro{max-width:280px;color:var(--text-2);font-size:12.5px;line-height:1.45}.dev-vendor-detail-head{align-items:center;gap:12px;display:flex}.dev-proto-layout{grid-template-columns:minmax(240px,.7fr) minmax(0,1.5fr);align-items:stretch;gap:14px;display:grid}.dev-proto-cat{text-align:left;cursor:pointer;width:100%;color:var(--text-1);background:0 0;border:0;border-radius:10px;align-items:flex-start;gap:8px;margin-bottom:4px;padding:10px 12px;display:flex}.dev-proto-cat span{flex-direction:column;flex:1;gap:2px;min-width:0;font-size:13px;font-weight:650;display:flex}.dev-proto-cat small{color:var(--text-3);white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:500;overflow:hidden}.dev-proto-cat b{color:var(--text-3);font-weight:600}.dev-proto-cat.on{color:var(--blue);background:#1d4ed814}.dev-proto-cat.on b{color:var(--blue)}@media (max-width:1280px){.dev-proto-layout{grid-template-columns:1fr}}.dev-subsys-layout{grid-template-columns:minmax(220px,.65fr) minmax(0,1.55fr);align-items:stretch;gap:14px;display:grid}.dev-subsys-status-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.dev-subsys-status-card{text-align:left;cursor:pointer;background:#fff;border:1px solid #0f172a14;border-radius:12px;padding:12px}.dev-subsys-status-card header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.dev-subsys-status-card strong{font-size:13.5px}.dev-subsys-status-card p{color:var(--text-3);margin:0 0 8px;font-size:12px}.dev-subsys-status-card>div{justify-content:space-between;gap:8px;display:flex}.dev-subsys-status-card em{color:var(--text-2);font-size:11.5px;font-style:normal}.dev-shadow-layout{grid-template-columns:minmax(280px,.8fr) minmax(0,1.4fr);align-items:stretch;gap:14px;display:grid}.dev-shadow-panels{flex-direction:column;gap:16px;display:flex}.dev-shadow-panels h4{margin:0 0 6px;font-size:13.5px;font-weight:700}@media (max-width:1280px){.dev-subsys-layout,.dev-shadow-layout{grid-template-columns:1fr}.dev-subsys-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.dev-subsys-status-grid{grid-template-columns:1fr}}.dev-event-updated{color:var(--text-3);margin-left:auto;font-size:12.5px}.dev-event-payload-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.dev-event-payload-grid small{color:var(--text-3);margin-bottom:6px;display:block}.dev-event-image-preview{min-height:140px;color:var(--text-2);background:#0f172a08;border:1px dashed #0f172a26;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex}.dev-event-image-preview small{color:var(--text-3)}@media (max-width:900px){.dev-event-payload-grid{grid-template-columns:1fr}}.dev-twin-page{--twin-bg:#06101f;--twin-panel:#081224c7;--twin-line:#38bdf838;--twin-text:#e2e8f0;--twin-muted:#94a3b8;--twin-cyan:#22d3ee;--twin-ok:#34d399;--twin-warn:#fb923c;--twin-bad:#f87171;--twin-off:#64748b;--twin-map:#60a5fa;min-height:calc(100vh - 88px);color:var(--twin-text);background:radial-gradient(1000px 420px at 50% -10%,#1d4ed859,#0000 60%),radial-gradient(700px 360px at 80% 20%,#0ea5e91f,#0000 55%),linear-gradient(#071428 0%,#040b16 100%);border-radius:16px;margin:-8px -4px 0;padding:10px 12px 16px;overflow:hidden}.dev-twin-top{grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin-bottom:10px;display:grid}.dev-twin-brand span{letter-spacing:.18em;color:var(--twin-cyan);font-size:10px;display:block}.dev-twin-brand h1{margin:2px 0 0;font-size:18px;font-weight:750}.dev-twin-cats{border:1px solid var(--twin-line);background:#0f172a8c;border-radius:999px;gap:8px;padding:6px 8px;display:flex}.dev-twin-cats button{width:34px;height:34px;color:var(--twin-muted);cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.dev-twin-cats button.on,.dev-twin-cats button:hover{color:var(--twin-cyan);background:#22d3ee29;box-shadow:0 0 0 1px #22d3ee59}.dev-twin-actions{justify-content:flex-end;gap:8px;display:flex}.dev-twin-actions button{border:1px solid var(--twin-line);color:var(--twin-text);cursor:pointer;background:#0f172a8c;border-radius:8px;padding:6px 10px;font-size:12px}.dev-twin-filter{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;display:flex}.dev-twin-filter label{border:1px solid var(--twin-line);min-width:280px;height:34px;color:var(--twin-muted);background:#0f172a8c;border-radius:8px;align-items:center;gap:8px;padding:0 10px;display:inline-flex}.dev-twin-filter input,.dev-twin-filter select{color:var(--twin-text);background:0 0;border:0;outline:none;width:100%;font-size:12.5px}.dev-twin-filter select{border:1px solid var(--twin-line);background:#0f172a8c;border-radius:8px;min-width:120px;height:34px;padding:0 10px}.dev-twin-kpi-inline{color:var(--twin-muted);flex-wrap:wrap;gap:12px;margin-left:auto;font-size:12px;display:flex}.dev-twin-kpi-inline b{color:var(--twin-cyan);margin-left:4px}.dev-twin-body{grid-template-columns:280px minmax(0,1fr) 300px;gap:10px;min-height:640px;display:grid}.dev-twin-panel{flex-direction:column;gap:10px;min-width:0;max-height:720px;display:flex;overflow:auto}.dev-twin-card{background:var(--twin-panel);border:1px solid var(--twin-line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;padding:12px}.dev-twin-card h3{color:#f8fafc;margin:0 0 10px;font-size:13px;font-weight:700}.dev-twin-card .muted{color:var(--twin-muted);margin:0;font-size:12px}.dev-twin-tree-all,.dev-twin-tree-kind,.dev-twin-tree-item{width:100%;color:var(--twin-text);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;padding:7px 8px;font-size:12.5px;display:flex}.dev-twin-tree-all b,.dev-twin-tree-kind b{color:var(--twin-muted);margin-left:auto}.dev-twin-tree-all.on,.dev-twin-tree-item.on,.dev-twin-tree-all:hover,.dev-twin-tree-kind:hover,.dev-twin-tree-item:hover{background:#22d3ee1a}.dev-twin-tree-item{color:#cbd5e1;padding-left:18px}.dev-twin-tree-item span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dev-twin-tree-block{margin-bottom:4px}.dot{background:var(--twin-off);border-radius:50%;flex-shrink:0;width:7px;height:7px}.dot.ok{background:var(--twin-ok);box-shadow:0 0 8px #34d399b3}.dot.warn{background:var(--twin-warn);box-shadow:0 0 8px #fb923cb3}.dot.bad{background:var(--twin-bad);box-shadow:0 0 8px #f87171b3}.dot.off{background:var(--twin-off)}.dot.map{background:var(--twin-map)}.dev-twin-donut-wrap{grid-template-columns:72px 1fr;align-items:center;gap:10px;display:grid}.dev-twin-donut{background:conic-gradient(#fbbf24 0 18%, #38bdf8 18% 32%, #22d3ee 32% 48%, #a3e635 48% 58%, #818cf8 58% 74%, #34d399 74% 88%, #fb923c 88% 100%);border-radius:50%;width:72px;height:72px;-webkit-mask:radial-gradient(22px,#0000 98%,#000 100%);mask:radial-gradient(22px,#0000 98%,#000 100%)}.dev-twin-donut-wrap ul{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.dev-twin-donut-wrap li{color:var(--twin-muted);align-items:center;gap:6px;font-size:11.5px;display:flex}.dev-twin-donut-wrap li i{border-radius:2px;width:8px;height:8px}.dev-twin-donut-wrap li b{color:#e2e8f0;margin-left:auto}.dev-twin-feed{flex-direction:column;gap:6px;display:flex}.dev-twin-feed button{text-align:left;color:var(--twin-text);cursor:pointer;background:#0f172a73;border:0;border-radius:8px;padding:8px 10px}.dev-twin-feed strong{font-size:12.5px;display:block}.dev-twin-feed small{color:var(--twin-muted);font-size:11px}.dev-twin-scene{border:1px solid var(--twin-line);background:radial-gradient(circle at 50% 30%,#38bdf814,#0000 45%),linear-gradient(#0a1830 0%,#07101f 100%);border-radius:14px;min-height:640px;position:relative;overflow:hidden}.dev-twin-scene-bg{transform-origin:50% 70%;position:absolute;inset:0;transform:perspective(900px)rotateX(48deg)scale(1.15)}.dev-twin-ground{background:linear-gradient(135deg,#0f32288c,#0c1c30cc),repeating-linear-gradient(90deg,#0000 0 28px,#94a3b80d 28px 29px),repeating-linear-gradient(0deg,#0000 0 28px,#94a3b80a 28px 29px);border-radius:18px;position:absolute;inset:8% 6% 4%;box-shadow:inset 0 0 80px #020814a6}.dev-twin-road{background:linear-gradient(90deg,#334155e6,#475569f2);position:absolute;box-shadow:0 0 0 1px #94a3b833}.dev-twin-road.r1{height:18px;top:48%;left:10%;right:10%}.dev-twin-road.r2{width:18px;top:18%;bottom:16%;left:46%}.dev-twin-park{background:#1e293bd9;border:1px dashed #94a3b859;border-radius:8px;width:22%;height:18%;position:absolute;top:18%;left:62%}.dev-twin-green{background:radial-gradient(circle at 30% 30%,#34d39959,#064e3b8c);border-radius:40% 60% 55% 45%;position:absolute}.dev-twin-green.g1{width:14%;height:12%;top:22%;left:14%}.dev-twin-green.g2{width:16%;height:14%;top:58%;left:70%}.dev-twin-bldg{background:linear-gradient(145deg,#60a5fa59,#1e40afbf);border:1px solid #93c5fd73;width:70px;height:54px;position:absolute;transform:skew(-18deg);box-shadow:8px 10px #0f172a73,inset 0 0 20px #38bdf833}.dev-twin-bldg:after{content:attr(data-label);color:#cbd5e1;white-space:nowrap;font-size:10px;position:absolute;top:-18px;left:50%;transform:skew(18deg)translate(-50%)}.dev-twin-bldg.b1{top:30%;left:18%}.dev-twin-bldg.b2{width:88px;height:64px;top:24%;left:38%}.dev-twin-bldg.b3{width:64px;top:18%;left:48%}.dev-twin-bldg.b4{width:78px;top:52%;left:62%}.dev-twin-bldg.b5{width:56px;height:42px;top:58%;left:16%}.dev-twin-bldg.warn{background:linear-gradient(145deg,#fb923c8c,#9a3412d9);border-color:#fb923ccc;box-shadow:8px 10px #0f172a73,0 0 24px #fb923c8c}.dev-twin-alert-mark{z-index:5;color:#111;background:#fb923c;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;margin-top:-14px;margin-left:-14px;font-weight:800;display:flex;position:absolute;transform:translateZ(40px);box-shadow:0 0 18px #fb923ce6}.dev-twin-marker{z-index:6;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:4px;display:flex;position:absolute;transform:translate(-50%,-100%)}.dev-twin-marker .ico{background:#0f172ae6;border:2px solid;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;display:inline-flex;box-shadow:0 0 12px}.dev-twin-marker em{color:#e2e8f0;white-space:nowrap;background:#020814d1;border:1px solid #94a3b840;border-radius:6px;padding:2px 6px;font-size:10px;font-style:normal}.dev-twin-marker em small{color:var(--twin-muted);font-size:9px;display:block}.dev-twin-marker.tone-ok{color:var(--twin-ok)}.dev-twin-marker.tone-warn{color:var(--twin-warn)}.dev-twin-marker.tone-bad{color:var(--twin-bad)}.dev-twin-marker.tone-off{color:var(--twin-off)}.dev-twin-marker.tone-map{color:var(--twin-map)}.dev-twin-marker.on .ico{transform:scale(1.15);box-shadow:0 0 18px}.dev-twin-scene-legend{color:var(--twin-muted);z-index:8;gap:10px;font-size:11px;display:flex;position:absolute;bottom:12px;left:12px}.dev-twin-scene-legend span:before{content:"";vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:4px;display:inline-block}.dev-twin-scene-legend .ok:before{background:var(--twin-ok)}.dev-twin-scene-legend .off:before{background:var(--twin-off)}.dev-twin-scene-legend .bad:before{background:var(--twin-bad)}.dev-twin-scene-legend .warn:before{background:var(--twin-warn)}.dev-twin-scene-legend .map:before{background:var(--twin-map)}.dev-twin-detail-head{flex-direction:column;gap:4px;margin-bottom:10px;display:flex}.dev-twin-detail-head strong{font-size:14px}.dev-twin-detail-head small{color:var(--twin-muted)}.dev-twin-model-preview{border:1px solid var(--twin-line);aspect-ratio:1;background:radial-gradient(circle at 50% 30%,#38bdf82e,#0000 55%),#020814d9;border-radius:12px;max-height:220px;margin-bottom:12px;position:relative;overflow:hidden}.dev-twin-model-preview img{object-fit:cover;object-position:center;width:100%;height:100%;display:block}.dev-twin-model-caption{background:linear-gradient(#0000,#020814e0);flex-direction:column;gap:2px;padding:8px 10px;display:flex;position:absolute;bottom:0;left:0;right:0}.dev-twin-model-caption span{color:#f8fafc;font-size:12px;font-weight:650}.dev-twin-model-caption small{color:var(--twin-muted);font-size:11px}.pill{background:#94a3b833;border-radius:999px;align-self:flex-start;padding:2px 8px;font-size:11px}.pill.ok{color:var(--twin-ok);background:#34d39933}.pill.warn{color:var(--twin-warn);background:#fb923c33}.pill.bad{color:var(--twin-bad);background:#f8717133}.pill.off{color:var(--twin-off)}.pill.map{color:var(--twin-map);background:#60a5fa33}.dev-twin-kv{gap:8px;display:grid}.dev-twin-kv>div{flex-direction:column;gap:2px;display:flex}.dev-twin-kv span{color:var(--twin-muted);font-size:11px}.dev-twin-kv b{word-break:break-all;font-size:12.5px;font-weight:650}.dev-twin-event strong{display:block}.dev-twin-event small{color:var(--twin-muted)}.dev-twin-event p{color:#cbd5e1;margin:6px 0 8px;font-size:12px}.dev-twin-event button,.dev-twin-video-btn{border:1px solid var(--twin-line);color:var(--twin-cyan);cursor:pointer;background:#22d3ee1f;border-radius:8px;padding:6px 10px;font-size:12px}.dev-twin-nearby{flex-direction:column;gap:6px;margin-top:8px;display:flex}.dev-twin-nearby button{color:var(--twin-text);text-align:left;cursor:pointer;background:#0f172a73;border:0;border-radius:8px;align-items:center;gap:8px;padding:8px;display:flex}.dev-twin-nearby strong{font-size:12px;display:block}.dev-twin-nearby small{color:var(--twin-muted);font-size:11px}.dev-twin-video-on{border:1px solid var(--twin-line);min-height:110px;color:var(--twin-cyan);background:linear-gradient(#0f172ae6,#020814f2);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:4px;display:flex}.dev-twin-video-on small{color:var(--twin-muted)}.dev-twin-video-on button{color:var(--twin-muted);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;margin-top:6px;display:inline-flex}.dev-twin-status-row{color:#cbd5e1;grid-template-columns:1fr repeat(3,10px);align-items:center;gap:6px;margin-bottom:8px;font-size:12px;display:grid}.dev-twin-status-row span{align-items:center;gap:6px;display:inline-flex}.dev-twin-status-row i{background:var(--twin-off);border-radius:50%;width:8px;height:8px}.dev-twin-status-row i.ok{background:var(--twin-ok)}.dev-twin-status-row i.warn{background:var(--twin-warn)}.dev-twin-status-row i.bad{background:var(--twin-bad)}.dev-twin-status-row i.off{background:var(--twin-off)}@media (max-width:1400px){.dev-twin-body{grid-template-columns:250px minmax(0,1fr) 270px}}@media (max-width:1200px){.dev-twin-top{grid-template-columns:1fr;justify-items:start}.dev-twin-actions{justify-content:flex-start}.dev-twin-body{grid-template-columns:1fr}.dev-twin-panel{max-height:none}.dev-twin-scene{min-height:480px}}.ctrl-page{gap:14px}.ctrl-overview-bar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.ctrl-overview-title h2{margin:2px 0 0;font-size:18px;font-weight:750}.ctrl-overview-time{color:var(--text-3);margin-left:auto;font-size:12.5px}.ctrl-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.ctrl-kpi-card{text-align:left;cursor:pointer;background:#fff;border:1px solid #0f172a14;border-radius:14px;padding:16px 18px;transition:border-color .15s,box-shadow .15s}.ctrl-kpi-card:hover{border-color:#1d4ed847;box-shadow:0 8px 20px #0f172a0d}.ctrl-kpi-top{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:14px;display:flex}.ctrl-kpi-icon{color:#1d4ed8;background:#1d4ed81a;border-radius:10px;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.ctrl-kpi-card.tone-green .ctrl-kpi-icon{color:#059669;background:#10b9811f}.ctrl-kpi-card.tone-amber .ctrl-kpi-icon{color:#d97706;background:#f59e0b24}.ctrl-kpi-card.tone-cyan .ctrl-kpi-icon{color:#0891b2;background:#06b6d41f}.ctrl-kpi-desc{color:var(--text-3);text-align:right;max-width:58%;font-size:12px;line-height:1.35}.ctrl-kpi-title{color:var(--text-1);margin-bottom:10px;font-size:15px;font-weight:700}.ctrl-kpi-value{align-items:baseline;gap:6px;display:flex}.ctrl-kpi-value b{letter-spacing:-.02em;color:var(--text-1);font-size:28px;font-weight:780}.ctrl-kpi-value em{color:var(--text-3);font-size:13px;font-style:normal}.ctrl-biz-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.ctrl-biz-card>header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.ctrl-biz-card>header>div{align-items:center;gap:8px;display:flex}.ctrl-biz-card h3{margin:0;font-size:15px;font-weight:700}.ctrl-biz-icon{color:#1d4ed8;background:#1d4ed81a;border-radius:8px;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex}.ctrl-biz-card.tone-cyan .ctrl-biz-icon{color:#0891b2;background:#06b6d41f}.ctrl-biz-card.tone-amber .ctrl-biz-icon{color:#d97706;background:#f59e0b24}.ctrl-biz-card.tone-green .ctrl-biz-icon{color:#059669;background:#10b9811f}.ctrl-biz-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}.ctrl-biz-metrics>div{background:#0f172a08;border-radius:10px;padding:10px}.ctrl-biz-metrics span{color:var(--text-3);margin-bottom:4px;font-size:11.5px;display:block}.ctrl-biz-metrics b{font-size:18px;font-weight:750}.ctrl-biz-foot{border-top:1px solid #0f172a0f;padding-top:10px}.ctrl-biz-foot strong{margin-bottom:4px;font-size:13px;display:block}.ctrl-biz-foot p{color:var(--text-3);margin:0;font-size:12px}.ctrl-mid-grid,.ctrl-bottom-grid{grid-template-columns:1.35fr .9fr;align-items:stretch;gap:12px;display:grid}.ctrl-progress{min-width:88px;padding-bottom:6px;position:relative}.ctrl-progress span{font-size:12.5px}.ctrl-progress i{background:linear-gradient(90deg,#1d4ed8,#06b6d4);border-radius:999px;max-width:100%;height:4px;position:absolute;bottom:0;left:0}.ctrl-strategy-list,.ctrl-record-list{flex-direction:column;gap:8px;display:flex}.ctrl-strategy-row,.ctrl-record-row{text-align:left;width:100%;color:inherit;cursor:pointer;background:#0f172a04;border:1px solid #0f172a0f;border-radius:10px;justify-content:space-between;align-items:flex-start;gap:12px;padding:10px 12px;display:flex}.ctrl-record-row{cursor:default}.ctrl-strategy-row:hover{border-color:#1d4ed840}.ctrl-strategy-row strong,.ctrl-record-row strong{margin-bottom:2px;font-size:13px;display:block}.ctrl-strategy-row small,.ctrl-record-row small{color:var(--text-3);font-size:11.5px}.ctrl-strategy-meta,.ctrl-record-row>div:last-child{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:4px;display:flex}.ctrl-strategy-meta em,.ctrl-record-row em{color:var(--text-3);font-size:11.5px;font-style:normal}.ctrl-record-row.fail{background:#ef444408;border-color:#ef44442e}@media (max-width:1280px){.ctrl-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ctrl-biz-grid,.ctrl-mid-grid,.ctrl-bottom-grid{grid-template-columns:1fr}.ctrl-biz-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.ctrl-kpi-grid{grid-template-columns:1fr}}.ctrl-hvac-layout{grid-template-columns:minmax(220px,.7fr) minmax(0,1.5fr);align-items:stretch;gap:12px;display:grid}.ctrl-hvac-panel{background:#0f172a04;border:1px solid #0f172a14;border-radius:12px;margin-bottom:12px;padding:14px}.ctrl-hvac-panel h4{margin:0 0 10px;font-size:13.5px;font-weight:700}.ctrl-hvac-panel small{color:var(--text-3);margin-top:8px;font-size:11.5px;display:block}.ctrl-hvac-temp{justify-content:center;align-items:center;gap:18px;display:flex}.ctrl-hvac-temp strong{letter-spacing:-.03em;text-align:center;min-width:96px;font-size:36px;font-weight:780}.ctrl-hvac-chips{flex-wrap:wrap;gap:8px;display:flex}.ctrl-hvac-chips button{cursor:pointer;color:var(--text-2);background:#fff;border:1px solid #0f172a1a;border-radius:999px;align-items:center;gap:4px;padding:7px 12px;font-size:12.5px;display:inline-flex}.ctrl-hvac-chips button.on{color:var(--blue);background:#1d4ed81a;border-color:#1d4ed859;font-weight:650}.ctrl-hvac-chips button:disabled{opacity:.45;cursor:not-allowed}.ctrl-vrf-layout{grid-template-columns:280px minmax(0,1fr);gap:14px;display:grid}.ctrl-vrf-odus h4{margin:0 0 10px;font-size:13px}.ctrl-vrf-odu{text-align:left;cursor:pointer;background:#fff;border:1px solid #0f172a14;border-radius:12px;align-items:center;gap:10px;width:100%;margin-bottom:8px;padding:12px;display:flex}.ctrl-vrf-odu.on{border-color:#06b6d473;box-shadow:0 0 0 3px #06b6d41a}.ctrl-vrf-odu strong{font-size:13px;display:block}.ctrl-vrf-odu small{color:var(--text-3);font-size:11.5px}.ctrl-vrf-canvas{background:radial-gradient(circle at 50% 18%,#06b6d414,#0000 45%),linear-gradient(#f8fafc,#eef2ff);border:1px solid #0f172a14;border-radius:14px;min-height:420px;padding:20px;position:relative}.ctrl-vrf-title{text-align:center;color:var(--text-1);margin-bottom:16px;font-weight:750}.ctrl-vrf-odu-node{color:#e2e8f0;text-align:center;background:#0f172a;border-radius:14px;width:min(280px,90%);margin:0 auto 8px;padding:14px;box-shadow:0 10px 24px #0f172a2e}.ctrl-vrf-odu-node.warn{box-shadow:0 0 0 2px #f59e0b8c,0 10px 24px #0f172a2e}.ctrl-vrf-odu-node strong{margin:4px 0;display:block}.ctrl-vrf-odu-node small{color:#94a3b8}.ctrl-vrf-trunk{background:#1d4ed859;width:2px;height:28px;margin:0 auto}.ctrl-vrf-indoors{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-top:8px;display:grid}.ctrl-vrf-indoor{text-align:left;cursor:pointer;opacity:.55;background:#ffffffeb;border:1px solid #0f172a1a;border-radius:12px;flex-direction:column;gap:4px;padding:12px;transition:opacity .15s,border-color .15s,box-shadow .15s;display:flex}.ctrl-vrf-indoor.highlight{opacity:1;border-color:#06b6d473;box-shadow:0 0 0 3px #06b6d41f}.ctrl-vrf-indoor.on{background:#06b6d414}.ctrl-vrf-indoor.alarm{border-color:#ef444466}.ctrl-vrf-indoor .dot{background:#94a3b8;border-radius:50%;width:8px;height:8px}.ctrl-vrf-indoor .dot.ok{background:#10b981}.ctrl-vrf-indoor .dot.off{background:#64748b}.ctrl-vrf-indoor .dot.bad{background:#ef4444}.ctrl-vrf-indoor strong{font-size:13px}.ctrl-vrf-indoor small{color:var(--text-3);font-size:11.5px}.ctrl-vrf-indoor em{color:var(--blue);font-style:normal;font-weight:700}.ctrl-group-grid,.ctrl-unified-grid{grid-template-columns:1fr 1.1fr;gap:12px;display:grid}.ctrl-exclude-list{grid-template-columns:1fr 1fr;gap:6px;max-height:240px;margin-top:8px;display:grid;overflow:auto}.ctrl-exclude-list label{background:#0f172a08;border-radius:8px;align-items:flex-start;gap:8px;padding:6px 8px;font-size:12.5px;display:flex}.ctrl-exclude-list small{color:var(--text-3);font-size:11px;display:block}@media (max-width:1280px){.ctrl-hvac-layout,.ctrl-vrf-layout,.ctrl-group-grid,.ctrl-unified-grid,.ctrl-exclude-list{grid-template-columns:1fr}}.ctrl-light-batch{border-top:1px solid #0f172a0f;flex-wrap:wrap;gap:8px;margin-top:12px;padding-top:12px;display:flex}.ctrl-light-zone-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.ctrl-light-zone-card{background:#fff;border:1px solid #0f172a14;border-radius:12px;flex-direction:column;gap:10px;padding:12px;display:flex}.ctrl-light-zone-card>div:first-child{color:var(--text-1);align-items:center;gap:8px;display:flex}.ctrl-light-zone-card strong{font-size:13px}.ctrl-light-cams{gap:10px;display:grid}.ctrl-light-cam{background:#fff;border:1px solid #0f172a14;border-radius:12px;overflow:hidden}.ctrl-light-cam-preview{color:#94a3b8;background:radial-gradient(circle at 30% 20%,#06b6d429,#0000 42%),linear-gradient(160deg,#0f172a,#1e293b 60%,#0b1220);flex-direction:column;justify-content:center;align-items:center;gap:8px;height:140px;display:flex}.ctrl-light-cam-preview span{font-size:12px}.ctrl-light-cam-meta{padding:10px 12px}.ctrl-light-cam-meta strong{font-size:13px;display:block}.ctrl-light-cam-meta small{color:var(--text-3);font-size:11.5px}.ctrl-light-time{align-items:center;gap:8px;display:flex}.ctrl-light-time input{flex:1}.ctrl-light-lux-list{gap:8px;display:grid}.ctrl-light-lux-item{background:#fff;border:1px solid #0f172a14;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.ctrl-light-lux-item.on{border-color:#06b6d466;box-shadow:0 0 0 3px #06b6d41a}.ctrl-light-lux-item strong{font-size:13px;display:block}.ctrl-light-lux-item small{color:var(--text-3);font-size:11.5px}.ctrl-light-lux-item b{color:var(--blue);font-size:18px}@media (max-width:900px){.ctrl-light-zone-grid{grid-template-columns:1fr}}.ctrl-power-kind{color:var(--text-3);background:#0f172a0f;border-radius:999px;margin-right:6px;padding:1px 6px;font-size:10.5px;font-weight:600;display:inline-block}.ctrl-power-modal{background:#fff;border-radius:16px;flex-direction:column;width:min(640px,100vw - 32px);max-height:calc(100vh - 48px);margin:auto;display:flex;overflow:auto;box-shadow:0 24px 64px #0f172a47}.ctrl-power-modal>header,.ctrl-power-modal>footer{border-bottom:1px solid #0f172a0f;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;display:flex}.ctrl-power-modal>footer{border-top:1px solid #0f172a0f;border-bottom:0;justify-content:flex-end}.ctrl-power-modal>header h2{align-items:center;gap:8px;margin:0;font-size:16px;display:flex}.ctrl-power-modal>header p{color:var(--text-3);margin:4px 0 0;font-size:12.5px}.ctrl-power-modal-body{padding:16px 18px}.ctrl-power-risk{color:#b45309;background:#f59e0b1a;border-radius:10px;align-items:flex-start;gap:8px;margin-bottom:12px;padding:10px 12px;font-size:12.5px;display:flex}.ctrl-power-field{color:var(--text-2);gap:6px;margin-top:12px;font-size:12.5px;display:grid}.ctrl-power-field select,.ctrl-power-field textarea,.ctrl-power-field input{width:100%;font:inherit;background:#fff;border:1px solid #0f172a1f;border-radius:10px;padding:8px 10px}.ctrl-power-check{color:var(--text-2);align-items:flex-start;gap:8px;margin-top:12px;font-size:12.5px;display:flex}.ctrl-power-check input{margin-top:2px}.ctrl-power-topo-layout{grid-template-columns:1.2fr .9fr;gap:12px;display:grid}.ctrl-power-topo-canvas{background:linear-gradient(#0f172a05,#0000 40%),radial-gradient(circle at 20% 10%,#1d4ed814,#0000 36%),#f8fafc;border:1px solid #0f172a14;border-radius:14px;min-height:460px;padding:16px;overflow:auto}.ctrl-power-topo-node{position:relative}.ctrl-power-topo-chip{text-align:left;cursor:pointer;background:#fff;border:1px solid #0f172a1a;border-radius:12px;align-items:center;gap:8px;min-width:220px;margin:4px 0;padding:10px 12px;display:inline-flex}.ctrl-power-topo-chip small{color:var(--text-3);font-size:10.5px;display:block}.ctrl-power-topo-chip strong{font-size:13px;display:block}.ctrl-power-topo-chip.on{border-color:#1d4ed873;box-shadow:0 0 0 3px #1d4ed81f}.ctrl-power-topo-chip.kind-变压器{color:#e2e8f0;background:#0f172a;border-color:#0000}.ctrl-power-topo-chip.kind-变压器 small{color:#94a3b8}.ctrl-power-topo-chip.kind-回路{background:#06b6d40f;min-width:200px}.ctrl-power-record-summary{color:var(--text-2);flex-wrap:wrap;gap:14px;margin-top:12px;font-size:12.5px;display:flex}.ctrl-power-record-summary span{align-items:center;gap:6px;display:inline-flex}.hint.c-red{color:#dc2626}.hint.c-amber{color:#d97706}.c-cyan{color:#0891b2}@media (max-width:1280px){.ctrl-power-topo-layout{grid-template-columns:1fr}}.ctrl-class-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}.ctrl-class-card{background:#fff;border:1px solid #0f172a14;border-radius:14px;flex-direction:column;gap:12px;padding:14px;display:flex}.ctrl-class-card.warn{border-color:#f59e0b73;box-shadow:0 0 0 3px #f59e0b14}.ctrl-class-card>header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.ctrl-class-card>header strong{font-size:14px;display:block}.ctrl-class-card>header small{color:var(--text-3);font-size:12px}.ctrl-class-metrics{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.ctrl-class-metrics>div{text-align:center;background:#0f172a08;border-radius:10px;padding:10px 8px}.ctrl-class-metrics span{color:var(--text-3);margin-bottom:4px;font-size:11.5px;display:block}.ctrl-class-metrics b{font-size:13px}.ctrl-class-foot{color:var(--text-2);flex-direction:column;gap:4px;font-size:12.5px;display:flex}.ctrl-class-foot em{color:var(--blue);font-style:normal;font-weight:700}.ctrl-class-floor-list{gap:12px;display:grid}.ctrl-class-floor-rooms{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;display:grid}.ctrl-class-floor-room{text-align:left;cursor:pointer;background:#fff;border:1px solid #0f172a14;border-radius:12px;flex-direction:column;gap:4px;padding:12px;display:flex}.ctrl-class-floor-room strong{font-size:13px}.ctrl-class-floor-room small{color:var(--text-3);font-size:11.5px}.ctrl-class-floor-room em{color:var(--blue);font-size:12px;font-style:normal;font-weight:650}.ctrl-policy-wizard{background:#fff;border-radius:16px;flex-direction:column;width:min(760px,100vw - 32px);max-height:calc(100vh - 40px);margin:auto;display:flex;overflow:auto;box-shadow:0 24px 64px #0f172a47}.ctrl-policy-wizard>header,.ctrl-policy-wizard>footer{border-bottom:1px solid #0f172a0f;justify-content:space-between;align-items:center;gap:10px;padding:16px 18px;display:flex}.ctrl-policy-wizard>footer{border-top:1px solid #0f172a0f;border-bottom:0;justify-content:flex-end}.ctrl-policy-wizard>header h2{margin:0;font-size:16px}.ctrl-policy-wizard>header p{color:var(--text-3);margin:4px 0 0;font-size:12.5px}.ctrl-policy-steps{border-bottom:1px solid #0f172a0f;grid-template-columns:repeat(5,1fr);gap:8px;padding:12px 18px;display:grid}.ctrl-policy-steps button{color:var(--text-2);cursor:pointer;background:#fff;border:1px solid #0f172a14;border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:8px 6px;font-size:12px;display:flex}.ctrl-policy-steps button b{background:#0f172a0f;border-radius:50%;place-items:center;width:22px;height:22px;font-size:11px;display:grid}.ctrl-policy-steps button.on{color:var(--blue);border-color:#1d4ed866;font-weight:650}.ctrl-policy-steps button.on b{color:var(--blue);background:#1d4ed81f}.ctrl-policy-steps button.done b{color:#059669;background:#10b98126}.ctrl-policy-wizard-body{padding:16px 18px}.ctrl-policy-cal{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;display:grid}.ctrl-policy-cal-item{background:#fff;border:1px solid #0f172a14;border-radius:12px;gap:8px;padding:12px;display:grid}.ctrl-policy-cal-item strong{font-size:13px;display:block}.ctrl-policy-cal-item small{color:var(--text-3);font-size:11.5px}.ctrl-policy-cal-item p{color:var(--text-2);margin:0;font-size:12.5px}@media (max-width:900px){.ctrl-policy-steps{grid-template-columns:1fr 1fr}}.ctrl-record-timeline{gap:0;display:grid}.ctrl-record-step{grid-template-columns:16px 1fr;gap:10px;min-height:72px;padding-bottom:8px;display:grid;position:relative}.ctrl-record-dot{z-index:1;background:#94a3b8;border-radius:50%;width:12px;height:12px;margin-top:4px;box-shadow:0 0 0 4px #94a3b82e}.ctrl-record-step.status-完成 .ctrl-record-dot{background:#10b981;box-shadow:0 0 0 4px #10b98126}.ctrl-record-step.status-进行中 .ctrl-record-dot{background:#f59e0b;box-shadow:0 0 0 4px #f59e0b26}.ctrl-record-step.status-失败 .ctrl-record-dot{background:#ef4444;box-shadow:0 0 0 4px #ef444426}.ctrl-record-line{background:#0f172a14;width:2px;position:absolute;top:18px;bottom:0;left:5px}.ctrl-record-step-body{background:#0f172a04;border:1px solid #0f172a0f;border-radius:12px;padding:10px 12px}.ctrl-record-step-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.ctrl-record-step-body strong{font-size:13px}.ctrl-record-step-body small{color:var(--text-3);margin-top:4px;display:block}.ctrl-record-step-body p{color:var(--text-2);margin:6px 0 0;font-size:12.5px}.c-red{color:#dc2626}.c-amber{color:#d97706}.alert-ov-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.alert-ov-donut{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.alert-donut-center{text-align:center}.alert-donut-center b{font-size:22px;line-height:1.1;display:block}.alert-donut-center span{color:var(--text-3);font-size:11.5px}.alert-ov-legend{gap:8px;min-width:140px;display:grid}.alert-ov-legend-item{cursor:pointer;text-align:left;color:var(--text-2);background:0 0;border:0;grid-template-columns:10px 1fr auto;align-items:center;gap:8px;padding:4px 0;font-size:12.5px;display:grid}.alert-ov-legend-item i{border-radius:50%;width:10px;height:10px}.alert-top-list{gap:8px;display:grid}.alert-top-item{text-align:left;cursor:pointer;background:#fff;border:1px solid #0f172a14;border-radius:12px;grid-template-columns:28px 1fr auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.alert-top-item>b{width:28px;height:28px;color:var(--blue);background:#1d4ed814;border-radius:8px;place-items:center;display:grid}.alert-top-item strong{font-size:13px;display:block}.alert-top-item small{color:var(--text-3);font-size:11.5px}.alert-top-meta{text-align:right;color:var(--text-3);gap:2px;font-size:11.5px;display:grid}.alert-top-meta em{color:var(--red);font-size:14px;font-style:normal;font-weight:700}.alert-detail-drawer{width:min(560px,100vw)}.alert-ai-box{background:linear-gradient(#1d4ed80a,#0000);border:1px solid #1d4ed826;border-radius:12px;padding:12px}.alert-ai-box strong{margin:8px 0 6px;font-size:13px;display:block}.alert-ai-box ul{color:var(--text-2);margin:0;padding-left:18px;font-size:12.5px}.alert-ai-box li{margin:4px 0}.alert-locate-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.alert-locate-grid button{cursor:pointer;text-align:left;color:var(--text-1);background:#fff;border:1px solid #0f172a14;border-radius:10px;align-items:center;gap:8px;padding:12px;font-size:12.5px;display:flex}.alert-pager{justify-content:flex-end;align-items:center;gap:10px;margin-top:12px;display:flex}.alert-table-dense td,.alert-table-dense th{font-size:12px;padding-top:6px!important;padding-bottom:6px!important}@media (max-width:1280px){.alert-ov-grid,.alert-locate-grid{grid-template-columns:1fr}}.alert-handle-detail{background:#fff;border-radius:16px;width:min(1100px,100vw - 24px);max-height:calc(100vh - 32px);margin:auto;overflow:auto;box-shadow:0 24px 64px #0f172a47}.alert-handle-detail>header{border-bottom:1px solid #0f172a0f;justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 18px;display:flex}.alert-handle-detail>header h2{align-items:center;gap:10px;margin:0;font-size:16px;display:flex}.alert-handle-detail>header p{color:var(--text-3);margin:6px 0 0;font-size:12.5px}.alert-urgent-tag{color:#dc2626;background:#ef44441f;border-radius:999px;margin-left:8px;padding:1px 8px;font-size:11.5px;font-style:normal;font-weight:700;display:inline-block}.alert-handle-body{grid-template-columns:.95fr 1.15fr;gap:12px;padding:14px 16px 18px;display:grid}.alert-row-urgent td:first-child,.alert-row-urgent td:nth-child(2){box-shadow:inset 3px 0 #ef4444}@media (max-width:1100px){.alert-handle-body{grid-template-columns:1fr}}.alert-channel-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;display:grid}.alert-channel-card{background:#fff;border:1px solid #0f172a14;border-radius:12px;flex-direction:column;gap:8px;padding:14px;display:flex}.alert-channel-card.on{border-color:#1d4ed847;box-shadow:0 0 0 3px #1d4ed814}.alert-channel-card>header{align-items:center;gap:8px;display:flex}.alert-channel-card>header strong{flex:1;font-size:13.5px}.alert-channel-card p{color:var(--text-2);margin:0;font-size:12.5px}.alert-channel-card small{color:var(--text-3);font-size:11.5px}.alert-custom-range{align-items:center;gap:6px;display:inline-flex}.alert-custom-range input{font:inherit;border:1px solid #0f172a1f;border-radius:8px;padding:6px 8px}.alert-repeat-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}.alert-repeat-card{background:#fff;border:1px solid #0f172a14;border-radius:14px;padding:14px}.alert-repeat-card>header{justify-content:space-between;gap:8px;margin-bottom:10px;display:flex}.alert-repeat-card>header strong{font-size:14px}.alert-repeat-card>header span{color:var(--text-3);font-size:12px}.alert-report-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;display:grid}.alert-report-card{text-align:left;cursor:pointer;background:#fff;border:1px solid #0f172a14;border-radius:12px;align-items:flex-start;gap:10px;padding:14px;display:flex}.alert-report-card strong{margin-bottom:4px;font-size:13px;display:block}.alert-report-card small{color:var(--text-3);font-size:11.5px}.alert-report-card.tone-red{border-color:#ef444440}.alert-report-card.tone-amber{border-color:#f59e0b47}.alert-report-card.tone-cyan{border-color:#06b6d447}.alert-report-card.tone-green{border-color:#10b98147}.alert-report-card.tone-blue{border-color:#1d4ed840}.alert-dict-note{background:#0f172a08;border:1px solid #0f172a0f;border-radius:12px;margin-top:12px;padding:12px}.alert-dict-note p{color:var(--text-2);margin:0 0 8px;font-size:12.5px;line-height:1.55}.alert-dict-note p:last-child{margin-bottom:0}.ops-page .ops-sub{color:var(--text-3);margin-top:2px;font-size:11.5px;display:block}.ops-overdue-tag{color:#b91c1c;background:#ef44441f;border-radius:999px;margin-left:6px;padding:1px 6px;font-size:11px;font-style:normal;display:inline-block}.ops-wb-main{grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:14px;margin-top:14px;display:grid}.ops-wb-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px;display:grid}.ops-device-list{flex-direction:column;gap:8px;max-height:420px;display:flex;overflow:auto}.ops-device-card{text-align:left;cursor:pointer;background:#fff;border:1px solid #0f172a14;border-radius:12px;padding:10px 12px}.ops-device-card>header{justify-content:space-between;align-items:center;gap:8px;display:flex}.ops-device-card>header strong{font-size:13px}.ops-device-card>small{color:var(--text-3);margin:4px 0 8px;font-size:11.5px;display:block}.ops-device-meta{color:var(--text-2);justify-content:space-between;gap:8px;font-size:12px;display:flex}.ops-device-foot{color:var(--text-3);justify-content:space-between;gap:8px;margin-top:8px;font-size:12px;display:flex}.ops-device-foot b{color:var(--text-1);font-weight:600}.ops-inspect-kpis{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}.ops-inspect-kpis>div{background:#0f172a05;border:1px solid #0f172a0f;border-radius:10px;padding:8px 10px}.ops-inspect-kpis span{color:var(--text-3);margin-bottom:4px;font-size:11.5px;display:block}.ops-inspect-kpis b{font-size:18px}.ops-inline-filters{flex-wrap:wrap;gap:6px;display:flex}.ops-ai-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.ops-ai-card{background:#fff;border:1px solid #0f172a14;border-radius:12px;padding:12px 14px}.ops-ai-card>header{color:#b45309;align-items:center;gap:8px;margin-bottom:8px;display:flex}.ops-ai-card>header strong{color:var(--text-1);font-size:13.5px}.ops-ai-card p{color:var(--text-2);margin:0 0 6px;font-size:12.5px;line-height:1.5}.ops-ai-card ul{color:var(--text-2);margin:6px 0 10px;padding-left:18px;font-size:12.5px}.ops-ai-card li{margin:3px 0}.ops-ticket-tabs{margin-bottom:10px}.ops-ticket-filters{flex-wrap:wrap;margin-bottom:10px}.ops-search{background:#fff;border:1px solid #0f172a1a;border-radius:10px;align-items:center;gap:6px;min-width:220px;padding:0 10px;display:inline-flex}.ops-search input{background:0 0;border:0;outline:none;width:100%;height:34px}.ops-ticket-pager{justify-content:space-between;align-items:center;gap:12px;margin-top:12px;display:flex}.ops-pager-right{align-items:center;gap:8px;display:flex}.ops-create-drawer{background:#fff;border-left:1px solid #0f172a14;flex-direction:column;width:min(520px,100%);height:100%;display:flex;position:absolute;top:0;right:0;box-shadow:-12px 0 40px #0f172a14}.ops-create-drawer>header{border-bottom:1px solid #0f172a0f;justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 18px;display:flex}.ops-create-drawer>header h2{margin:0;font-size:16px}.ops-create-drawer>header p{color:var(--text-3);margin:4px 0 0;font-size:12px}.ops-create-body{flex-direction:column;flex:1;gap:10px;padding:14px 18px 8px;display:flex;overflow:auto}.ops-create-drawer>footer{border-top:1px solid #0f172a0f;padding:12px 18px 16px}.ops-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.ops-form-grid label{color:var(--text-2);flex-direction:column;gap:4px;font-size:12px;display:flex}.ops-form-grid select,.ops-form-grid input{height:34px;color:var(--text-1);background:#fff;border:1px solid #0f172a1f;border-radius:8px;padding:0 8px}.ops-detail-bar{align-items:center}.ops-detail-grid{margin-top:12px}.ops-detail-split{grid-template-columns:minmax(0,1.45fr) minmax(280px,1fr);gap:14px;margin-top:14px;display:grid}.ops-detail-side{flex-direction:column;gap:14px;display:flex}.ops-kv{grid-template-columns:repeat(2,minmax(0,1fr))}.ops-action-panel{flex-direction:column;gap:12px;margin-top:14px;display:flex}@media (max-width:1100px){.ops-wb-main,.ops-wb-grid,.ops-ai-grid,.ops-detail-split,.ops-inspect-kpis,.ops-route-layout,.ops-task-detail-split,.ops-check-grid,.ops-form-grid{grid-template-columns:1fr}}.ops-wizard-steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:10px 18px 0;display:grid}.ops-wizard-steps button{color:var(--text-2);background:#0f172a05;border:1px solid #0f172a14;border-radius:10px;padding:8px 6px;font-size:12px}.ops-wizard-steps button.on{color:var(--text-1);background:#1d4ed814;border-color:#1d4ed840;font-weight:600}.ops-plan-preview p{color:var(--text-2);margin:0 0 8px;font-size:13px;line-height:1.5}.ops-route-layout{grid-template-columns:minmax(240px,.85fr) minmax(0,1.6fr);gap:14px;margin-top:12px;display:grid}.ops-route-list{flex-direction:column;gap:8px;max-height:560px;display:flex;overflow:auto}.ops-route-item{text-align:left;background:#fff;border:1px solid #0f172a14;border-radius:12px;gap:4px;padding:10px 12px;display:grid}.ops-route-item.on{background:#1d4ed80a;border-color:#1d4ed847}.ops-route-item strong{font-size:13px}.ops-route-item small{color:var(--text-3);font-size:11.5px}.ops-route-meta{margin-bottom:12px}.ops-floor-map{background:linear-gradient(#f8fafce6,#f1f5f9b3),repeating-linear-gradient(0deg,#0000,#0000 23px,#0f172a0a 24px);border:1px dashed #0f172a1f;border-radius:12px;flex-direction:column;gap:8px;padding:12px;display:flex}.ops-floor-node{background:#fff;border:1px solid #0f172a14;border-radius:12px;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.ops-floor-node>b{color:#1d4ed8;background:#1d4ed81a;border-radius:999px;place-items:center;width:34px;height:34px;display:grid}.ops-floor-node strong{font-size:13px;display:block}.ops-floor-node small{color:var(--text-3);margin-top:2px;font-size:11.5px;display:block}.ops-floor-acts{flex-wrap:wrap;gap:4px;display:flex}.ops-point-picker{border-top:1px solid #0f172a0f;margin-top:12px;padding-top:10px}.ops-point-picker h4{margin:0 0 8px;font-size:13px}.ops-check-ref{margin-top:14px}.ops-check-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.ops-check-grid article{background:#fff;border:1px solid #0f172a14;border-radius:12px;padding:10px 12px}.ops-check-grid strong{margin-bottom:6px;font-size:13px;display:block}.ops-check-grid ul{color:var(--text-2);margin:0;padding-left:16px;font-size:12px}.ops-check-grid li{margin:2px 0}.ops-task-detail-split{grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr);gap:14px;margin-top:12px;display:grid}.ops-progress-bar{background:#0f172a0f;border-radius:999px;height:8px;margin-bottom:8px;overflow:hidden}.ops-progress-bar>div{background:linear-gradient(90deg,#2563eb,#06b6d4);height:100%}.ops-point-exec-list{flex-direction:column;gap:8px;margin:10px 0 14px;display:flex}.ops-point-exec-item{text-align:left;background:#fff;border:1px solid #0f172a14;border-radius:12px;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.ops-point-exec-item.on{background:#1d4ed80a;border-color:#1d4ed847}.ops-point-exec-item>b{background:#0f172a0d;border-radius:999px;place-items:center;width:34px;height:34px;display:grid}.ops-point-exec-item strong{font-size:13px;display:block}.ops-point-exec-item small{color:var(--text-3);margin-top:2px;font-size:11.5px;display:block}.ops-point-detail{border-top:1px solid #0f172a0f;padding-top:12px}.ops-point-detail>header{justify-content:space-between;gap:10px;margin-bottom:10px;display:flex}.ops-point-detail h3{align-items:center;gap:8px;margin:0;font-size:15px;display:flex}.ops-point-detail>header p{color:var(--text-3);margin:4px 0 0;font-size:12px}.ops-point-detail h4{margin:12px 0 8px;font-size:13px}.ops-repair-drawer{background:#fff;border-left:1px solid #0f172a14;flex-direction:column;width:min(720px,100%);height:100%;display:flex;position:absolute;top:0;right:0;box-shadow:-12px 0 40px #0f172a14}.ops-repair-drawer>header{border-bottom:1px solid #0f172a0f;justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 18px;display:flex}.ops-repair-drawer>header h2{flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-size:16px;display:flex}.ops-repair-drawer>header p{color:var(--text-3);margin:4px 0 0;font-size:12px}.ops-repair-body{flex-direction:column;flex:1;gap:12px;padding:14px 18px 20px;display:flex;overflow:auto}.ops-history-timeline{flex-direction:column;gap:8px;display:flex}.ops-history-item{background:#fff;border:1px solid #0f172a14;border-radius:12px;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.ops-history-item>b{background:#0f172a0d;border-radius:999px;place-items:center;width:28px;height:28px;display:grid}.ops-history-item strong{font-size:13px;display:block}.ops-history-item small{color:var(--text-3);margin-top:2px;font-size:11.5px;display:block}.ops-repeat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.ops-repeat-grid>div{background:#0f172a05;border:1px solid #0f172a0f;border-radius:10px;padding:8px 10px}.ops-repeat-grid span{color:var(--text-3);margin-bottom:4px;font-size:11.5px;display:block}.ops-eff-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.ops-eff-metrics>div,.ops-report-preview>div{background:#0f172a05;border:1px solid #0f172a0f;border-radius:10px;padding:8px 10px}.ops-eff-metrics span,.ops-report-preview span{color:var(--text-3);margin-bottom:4px;font-size:11.5px;display:block}.ops-eff-donut{grid-template-columns:180px minmax(0,1fr);align-items:center;gap:12px;display:grid}.ops-top3-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.ops-top3-grid h4{margin:0 0 8px;font-size:13px}.ops-report-panel{background:#fff;border:1px solid #0f172a14;border-radius:12px;padding:14px 16px}.ops-report-panel h3{align-items:center;gap:8px;margin:0 0 6px;font-size:15px;display:flex}.ops-report-panel>div>p{color:var(--text-2);margin:0 0 12px;font-size:13px}.ops-report-preview{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}.ops-lag-tag{color:#b45309;background:#f59e0b24;border-radius:999px;margin-left:6px;padding:1px 6px;font-size:11px;font-style:normal;display:inline-block}.ops-supervise-modal{background:#fff;border-radius:14px;flex-direction:column;width:min(520px,92vw);max-height:90vh;margin:4vh auto;display:flex;overflow:hidden;box-shadow:0 20px 60px #0f172a2e}.ops-supervise-modal>header{border-bottom:1px solid #0f172a0f;justify-content:space-between;gap:12px;padding:16px 18px;display:flex}.ops-supervise-modal>header h2{margin:0;font-size:16px}.ops-supervise-modal>header p{color:var(--text-3);margin:4px 0 0;font-size:12px}.ops-supervise-modal>footer{border-top:1px solid #0f172a0f;padding:12px 18px 16px}.ops-sup-task-banner{background:#0f172a08;border:1px solid #0f172a0f;border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:4px;padding:10px 12px;display:flex}.ops-channel-row{flex-wrap:wrap;gap:14px;margin-top:6px;display:flex}.ops-sup-detail{background:#fff;border-left:1px solid #0f172a14;flex-direction:column;width:min(68vw,880px);height:100%;display:flex;position:absolute;top:0;right:0;box-shadow:-12px 0 40px #0f172a14}.ops-sup-detail>header{border-bottom:1px solid #0f172a0f;justify-content:space-between;gap:12px;padding:16px 18px;display:flex}.ops-sup-detail>header h2{flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-size:16px;display:flex}.ops-sup-detail>header p{color:var(--text-3);margin:6px 0 0;font-size:12px}.ops-sup-detail-acts{align-items:flex-start;gap:6px;display:flex}.ops-sup-progress{border-top:1px solid #0f172a0f;margin-top:12px;padding-top:10px}.ops-sup-progress>div:first-child{align-items:baseline;gap:10px;margin-bottom:8px;display:flex}.ops-sup-progress>div:first-child span{color:var(--text-3);font-size:12px}.ops-sup-progress em{color:var(--text-2);font-size:12px;font-style:normal}.ops-point-expand{background:#0f172a05;border-radius:10px;padding:10px 8px}.ops-export-card{text-align:left;cursor:pointer;background:#fff;border:1px solid #0f172a14;border-radius:12px;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.ops-export-card strong{font-size:13.5px}.ops-export-card small{color:var(--text-3);font-size:12px}.ops-export-card:hover{background:#1d4ed80a;border-color:#1d4ed847}@media (max-width:1100px){.ops-eff-donut,.ops-top3-grid,.ops-eff-metrics,.ops-repeat-grid,.ops-report-preview{grid-template-columns:1fr}}.ana-page .ana-note{background:#1d4ed80a;border:1px solid #1d4ed81a;border-radius:10px;margin:8px 0 0;padding:8px 10px}.ana-donut-wrap{grid-template-columns:180px minmax(0,1fr);align-items:center;gap:12px;display:grid}.ana-subhead{margin:12px 0 8px;font-size:13px}.ana-heatmap{flex-direction:column;gap:4px;display:flex}.ana-heatmap-head,.ana-heatmap-row{grid-template-columns:48px repeat(6,minmax(0,1fr));align-items:center;gap:4px;display:grid}.ana-heatmap-head span{color:var(--text-3);text-align:center;font-size:11px}.ana-heatmap-row>span{color:var(--text-2);font-size:12px}.ana-heatmap-row>i{border-radius:6px;height:22px;display:block}.ana-filter-card{background:#0f172a05;border:1px solid #0f172a0f;border-radius:12px;margin-bottom:10px;padding:10px}.ana-breadcrumb{flex-wrap:wrap;gap:2px;margin-bottom:10px;display:flex}.ana-breadcrumb button{color:var(--text-2);cursor:pointer;background:0 0;border:0;padding:0;font-size:12.5px}.ana-breadcrumb button:last-child{color:var(--text-1);font-weight:600}.ana-tree{flex-direction:column;gap:6px;max-height:360px;display:flex;overflow:auto}.ana-tree-row{text-align:left;cursor:pointer;background:#fff;border:1px solid #0f172a14;border-radius:10px;justify-content:space-between;gap:10px;width:100%;padding:8px 10px;display:flex}.ana-tree-row:hover{background:#1d4ed808;border-color:#1d4ed840}.ana-tree-building{padding-left:12px}.ana-tree-floor{background:#0f172a05;margin-left:12px}.ana-tree-row em{color:var(--text-2);font-size:12px;font-style:normal}.ana-heatmap-trend-head,.ana-heatmap-trend-row{grid-template-columns:56px repeat(6,minmax(0,1fr))}.ana-compare-tags{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.ana-compare-tag{color:var(--text-1);cursor:pointer;background:#1d4ed80f;border:1px solid #1d4ed833;border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;display:inline-flex}.ana-pick-row{background:#fff;border:1px solid #0f172a14;border-radius:10px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.ana-pick-row strong{font-size:13px;display:block}.ana-pick-row small{color:var(--text-3);margin-top:2px;font-size:11.5px;display:block}.ana-compare-tag.off{opacity:.45;border-style:dashed}.ana-history-filters{flex-wrap:wrap}.ana-report-cards{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;display:grid}.ana-report-card{text-align:left;cursor:pointer;background:#fff;border:1px solid #0f172a14;border-radius:12px;flex-direction:column;gap:6px;padding:12px 14px;display:flex}.ana-report-card:hover{background:#1d4ed808;border-color:#1d4ed847}.ana-report-card strong{font-size:13.5px}.ana-report-card span{color:var(--text-2);font-size:12px;line-height:1.4}.ana-report-card em{color:var(--text-3);font-size:11.5px;font-style:normal}.ana-report-modal,.ana-report-preview{width:min(720px,96vw);max-width:720px}.ana-report-toc{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.ana-report-toc a{color:var(--primary,#1d4ed8);background:#1d4ed80f;border-radius:8px;padding:4px 8px;font-size:12px;text-decoration:none}@media (max-width:1100px){.ana-donut-wrap,.ana-heatmap-head,.ana-heatmap-row,.ana-heatmap-trend-head,.ana-heatmap-trend-row{grid-template-columns:1fr}.ana-report-cards{grid-template-columns:1fr 1fr}}.ai-page{flex-direction:column;gap:12px;margin-bottom:16px;display:flex}.ai-topbar{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);background:#fff;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.ai-topbar h2{margin:0;font-size:18px}.ai-topbar p{color:var(--text-2);margin:4px 0 0;font-size:12.5px}.ai-ok{color:#059669;font-style:normal;font-weight:650}.ai-top-meta{color:var(--text-3);flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.ai-layout{grid-template-columns:260px minmax(0,1.5fr) 300px;gap:12px;min-height:640px;display:grid}.ai-qa-layout{grid-template-columns:240px minmax(0,1.55fr) 280px}.ai-side,.ai-main{flex-direction:column;min-height:0;display:flex}.ai-side-left,.ai-main{padding:12px}.ai-side-right{flex-direction:column;gap:10px;display:flex}.ai-new-btn{justify-content:center;width:100%;margin-bottom:10px}.ai-side-search{border:1px solid var(--line);background:#f8fafc;border-radius:8px;align-items:center;gap:6px;height:34px;margin-bottom:8px;padding:0 10px;display:flex}.ai-side-search input{background:0 0;border:0;outline:none;flex:1;font-size:12.5px}.ai-quick-nav{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.ai-session-groups{flex:1;overflow:auto}.ai-session-group h4{color:var(--text-3);margin:10px 0 6px;font-size:11.5px;font-weight:650}.ai-session-item{text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:8px;width:100%;margin-bottom:4px;padding:8px 10px;display:flex}.ai-session-item:hover,.ai-session-item.on{background:#1d4ed80f;border-color:#1d4ed829}.ai-session-item strong{font-size:12.5px;display:block}.ai-session-item small{color:var(--text-3);font-size:11px}.ai-star{color:var(--text-3)}.ai-session-item.on .ai-star,.ai-star:hover{color:var(--blue)}.ai-chat-head{color:var(--blue);align-items:center;gap:8px;margin-bottom:10px;display:flex}.ai-chat-head span{color:var(--text-3);font-size:12px}.ai-chat-stream{flex-direction:column;flex:1;gap:12px;min-height:280px;padding:4px 2px 12px;display:flex;overflow:auto}.ai-bubble{max-width:92%}.ai-bubble.user{align-self:flex-end}.ai-bubble.assistant{align-self:flex-start}.ai-bubble-meta{color:var(--text-3);margin-bottom:4px;font-size:11.5px}.ai-bubble-body{white-space:pre-wrap;border:1px solid var(--line);background:#f1f5f9;border-radius:12px;padding:10px 12px;font-size:13px;line-height:1.55}.ai-bubble.user .ai-bubble-body{background:#1d4ed814;border-color:#1d4ed82e}.ai-result-card{background:#fff;border:1px solid #1d4ed829;border-radius:12px;margin-top:8px;padding:12px}.ai-result-card h4,.ai-result-card h5{margin:0 0 8px;font-size:13.5px}.ai-result-card ul{color:var(--text-2);margin:0;padding-left:18px;font-size:12.5px;line-height:1.55}.ai-kpi-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px;display:grid}.ai-kpi-row.compact{grid-template-columns:1fr}.ai-kpi-row>div{background:#f8fafc;border-radius:10px;padding:8px 10px}.ai-kpi-row span{color:var(--text-3);font-size:11.5px;display:block}.ai-kpi-row b{font-size:15px}.ai-source,.ai-source-box{color:var(--text-3);background:#0f172a08;border-radius:8px;margin-top:8px;padding:8px 10px;font-size:11.5px;line-height:1.5}.ai-source-box p{margin:2px 0}.ai-tag-row{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.ai-tag-row span{color:var(--blue);background:#1d4ed814;border-radius:999px;padding:3px 8px;font-size:11.5px}.ai-shortcuts{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px;display:grid}.ai-shortcut{text-align:left;border:1px solid var(--line);cursor:pointer;background:#fbfdff;border-radius:12px;padding:10px 12px}.ai-shortcut:hover{background:#1d4ed80a;border-color:#1d4ed847}.ai-shortcut strong{font-size:12.5px;display:block}.ai-shortcut span{color:var(--text-3);margin-top:4px;font-size:11.5px;display:block}.ai-composer{border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px}.ai-composer textarea{resize:vertical;border:0;outline:none;width:100%;min-height:72px;font-family:inherit;font-size:13px;line-height:1.5}.ai-composer-actions{justify-content:flex-end;gap:6px;margin-top:8px;display:flex}.ai-info-card{padding:12px}.ai-info-card>header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.ai-info-card>header strong{font-size:13px}.ai-info-card>header span{color:var(--text-3);font-size:11.5px}.ai-summary-grid{grid-template-columns:1fr;gap:6px;display:grid}.ai-summary-grid.cols-2{grid-template-columns:1fr 1fr}.ai-summary-grid>div{background:#f8fafc;border-radius:8px;justify-content:space-between;gap:8px;padding:7px 8px;display:flex}.ai-summary-grid span{color:var(--text-3);font-size:12px}.ai-summary-grid b{font-size:13px}.ai-summary-grid small{color:var(--text-3);margin-left:3px;font-weight:500}.ai-list{flex-direction:column;gap:6px;max-height:180px;display:flex;overflow:auto}.ai-list-item{border:1px solid var(--line);text-align:left;cursor:pointer;width:100%;color:inherit;background:#fff;border-radius:10px;justify-content:space-between;gap:8px;padding:8px 10px;display:flex}.ai-list-item.static{cursor:default}.ai-list-item strong{font-size:12.5px;display:block}.ai-list-item small{color:var(--text-3);font-size:11px}.ai-list-item em{color:var(--text-2);font-size:11.5px;font-style:normal}.ai-list-item .lv-high{color:#dc2626}.ai-list-item .lv-mid{color:#d97706}.ai-panel-title{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.ai-panel-title span{color:var(--text-3);font-size:11.5px}.ai-field{color:var(--text-2);flex-direction:column;gap:4px;margin-bottom:10px;font-size:12px;display:flex}.ai-field select{border:1px solid var(--line);background:#fff;border-radius:8px;height:34px;padding:0 8px}.ai-param-kv{margin-bottom:8px}.ai-template-list{flex-direction:column;gap:6px;display:flex}.ai-template{text-align:left;border:1px solid var(--line);color:var(--text-2);cursor:pointer;background:#f8fafc;border-radius:10px;padding:8px 10px;font-size:12px;line-height:1.4}.ai-template:hover{background:#1d4ed80a;border-color:#1d4ed847}.ai-chart-block{margin:10px 0}.ai-hub-page .ai-hub-card{padding:16px}.ai-hub-card h3{margin:0 0 10px;font-size:15px}.ai-hub-list{color:var(--text-2);margin:0 0 12px;padding-left:18px;font-size:13px;line-height:1.65}@media (max-width:1280px){.ai-layout,.ai-qa-layout{grid-template-columns:1fr}.ai-shortcuts{grid-template-columns:1fr 1fr}}.ai-locate-layout{grid-template-columns:240px minmax(0,1.45fr) 320px}.ai-ops-layout{grid-template-columns:240px minmax(0,1.5fr) 300px}.ai-locate-tree{max-height:420px;overflow:auto}.ai-locate-layers{grid-template-columns:1fr 1fr;gap:8px;display:grid}.ai-locate-layers label{color:var(--text-2);align-items:center;gap:6px;font-size:12.5px;display:flex}.ai-locate-stage{gap:10px;padding:12px}.ai-locate-stage-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.ai-locate-stage-head strong{font-size:15px;display:block}.ai-locate-stage-head span{color:var(--text-3);font-size:12px}.ai-locate-badge{color:var(--text-2);background:#f1f5f9;border-radius:999px;padding:3px 8px;font-size:11.5px;font-style:normal;font-weight:650}.ai-locate-badge.ok{color:#059669;background:#0596691f}.ai-locate-badge.off{color:#64748b;background:#64748b1f}.ai-locate-badge.bad{color:#dc2626;background:#dc26261f}.ai-locate-badge.mid{color:#d97706;background:#d977061f}.ai-locate-canvas{background:radial-gradient(circle at 20% 20%,#38bdf81f,#0000 40%),radial-gradient(circle at 80% 30%,#3b82f624,#0000 42%),linear-gradient(160deg,#0f172a 0%,#1e293b 55%,#0b1220 100%);border:1px solid #94a3b840;border-radius:14px;min-height:420px;transition:transform .25s;position:relative;overflow:hidden}.ai-locate-canvas .twin-iso-building{position:absolute;top:28%;left:42%}.ai-locate-canvas .twin-iso-floor.active{outline-offset:1px;outline:2px solid #38bdf8d9}.ai-locate-mark{color:#fff;cursor:pointer;z-index:20;background:#3b82f6d9;border:1px solid #ffffff59;border-radius:50%;place-items:center;width:26px;height:26px;margin:-13px 0 0 -13px;display:grid;position:absolute}.ai-locate-mark.ok{background:#10b981e6}.ai-locate-mark.off{background:#64748be6}.ai-locate-mark.bad{background:#ef4444f2}.ai-locate-mark.mid{background:#f59e0bf2}.ai-locate-mark.on{transform:scale(1.15);box-shadow:0 0 0 4px #38bdf859}.ai-locate-hint{color:#e2e8f0bf;z-index:5;font-size:11.5px;position:absolute;bottom:12px;left:12px}.ai-locate-toolbar{flex-wrap:wrap;gap:6px;display:flex}.ai-parse-card .lv-high{color:#dc2626;font-style:normal;font-weight:650}.ai-mini-title{margin:10px 0 6px;font-size:12.5px;font-weight:650}.ai-ops-tools{flex-wrap:wrap;gap:8px;display:flex}.ai-ops-tool{border:1px solid var(--line);cursor:pointer;color:var(--text-2);background:#fff;border-radius:999px;padding:8px 12px;font-size:12.5px}.ai-ops-tool.on{color:var(--blue);background:#1d4ed814;border-color:#1d4ed847;font-weight:650}.ai-ops-stream{min-height:320px}.ai-ops-report{margin-top:4px}.ai-ops-report-head{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px;display:flex}.ai-ops-report-head h4{margin:0;font-size:14px}.ai-ops-report-head p{color:var(--text-3);margin:4px 0 0;font-size:12px}.ai-ops-pending{color:#d97706;white-space:nowrap;background:#d977061f;border-radius:999px;padding:4px 8px;font-size:11.5px;font-style:normal;font-weight:650}.ai-ops-fact{color:var(--text-2);background:#f8fafc;border-radius:10px;margin:0;padding:8px 10px;font-size:12.5px;line-height:1.55}.ai-ops-list{color:var(--text-2);margin:0;padding-left:18px;font-size:12.5px;line-height:1.55}.ai-ops-list.plain{list-style:outside}@media (max-width:1280px){.ai-locate-layout,.ai-ops-layout{grid-template-columns:1fr}}.ai-strategy-layout{grid-template-columns:250px minmax(0,1.45fr) 300px}.ai-strategy-footer{flex-wrap:wrap;align-items:center;gap:8px;padding:12px 14px;display:flex}.ai-inline-input{border:1px solid var(--line);width:100%;font:inherit;border-radius:6px;padding:4px 8px;font-weight:650}.ai-risk-filters{flex-wrap:wrap;align-items:center;gap:16px;padding:12px 14px;display:flex}.ai-filter-label{color:var(--text-2);margin-right:8px;font-size:12.5px;display:inline-block}.ai-inline-field{flex-direction:row;align-items:center;gap:8px;margin:0}.ai-inline-field select{min-width:140px}.ai-risk-grid{grid-template-columns:minmax(0,1.35fr) minmax(280px,.9fr);gap:12px;display:grid}.ai-risk-list{max-height:420px}.ai-risk-list .ai-list-item.on{background:#1d4ed80f;border-color:#1d4ed847}.ai-risk-bottom{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.ai-report-layout{grid-template-columns:1fr}.ai-report-templates{padding:12px 14px}.ai-report-templates>strong{margin-bottom:10px;font-size:13px;display:block}.ai-report-template-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.ai-task-steps{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.ai-task-steps li{color:var(--text-2);align-items:flex-start;gap:8px;font-size:12.5px;display:flex}.ai-task-steps li i{width:16px;color:var(--text-3);font-style:normal}.ai-task-steps li.done,.ai-task-steps li.done i{color:#059669}.ai-task-steps li.current{color:var(--blue);font-weight:650}.ai-task-steps li.current i{color:var(--blue)}@media (max-width:1280px){.ai-strategy-layout,.ai-risk-grid,.ai-risk-bottom,.ai-report-template-grid{grid-template-columns:1fr}}.ai-knowledge-layout{grid-template-columns:220px minmax(0,1fr)}.ai-settings-layout{grid-template-columns:200px minmax(0,1.5fr) 260px}.ai-knowledge-cats{flex-direction:column;gap:2px;display:flex}.ai-knowledge-detail{grid-template-columns:1fr 1fr}.ai-settings-roles{grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;display:grid}.ai-settings-rules{flex-direction:column;gap:10px;display:flex}.ai-settings-rule{color:var(--text-2);align-items:flex-start;gap:8px;font-size:13px;line-height:1.45;display:flex}.ai-settings-voice{flex-direction:column;gap:4px;max-width:420px;display:flex}@media (max-width:1280px){.ai-knowledge-layout,.ai-settings-layout,.ai-settings-roles,.ai-knowledge-detail{grid-template-columns:1fr}}.int-page{flex-direction:column;gap:12px;margin-bottom:16px;display:flex}.int-topbar{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);background:#fff;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.int-topbar h2{margin:0;font-size:18px}.int-topbar p{color:var(--text-2);margin:4px 0 0;font-size:12.5px}.int-top-actions{flex-wrap:wrap;gap:8px;display:flex}.int-kpi-row{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;display:grid}.int-kpi-row.compact{grid-template-columns:repeat(4,minmax(0,1fr))}.int-kpi{text-align:left;border:1px solid var(--line);cursor:pointer;color:inherit;background:#fff;border-radius:12px;padding:12px 14px}.int-kpi span{color:var(--text-3);font-size:12px;display:block}.int-kpi b{margin-top:4px;font-size:22px;font-weight:700;display:block}.int-kpi small{color:var(--text-3);margin-top:4px;font-size:11.5px;display:block}.int-kpi.tone-blue b{color:var(--blue)}.int-kpi.tone-green b{color:#059669}.int-kpi.tone-red b{color:#dc2626}.int-kpi.tone-amber b{color:#d97706}.int-kpi.tone-cyan b{color:#0891b2}.int-overview-grid{grid-template-columns:minmax(0,1.35fr) minmax(280px,.9fr);gap:12px;display:grid}.int-panel{padding:12px 14px}.int-panel-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.int-panel-head strong{font-size:14px}.int-panel-head span{color:var(--text-3);font-size:12px}.int-topo{background:radial-gradient(circle at 50% 10%,#3b82f614,#0000 40%),linear-gradient(#f8fafc,#eef2ff);border:1px solid #94a3b840;border-radius:14px;min-height:360px;position:relative;overflow:hidden}.int-topo-lines{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.int-topo-lines line{stroke:#1d4ed847;stroke-width:.4px}.int-topo-node{text-align:left;cursor:pointer;width:min(240px,42%);box-shadow:var(--shadow-sm);z-index:2;background:#fff;border:1px solid #1d4ed82e;border-radius:12px;padding:10px 12px;position:absolute;transform:translate(-50%,-50%)}.int-topo-node strong{font-size:12.5px;display:block}.int-topo-node span{color:var(--text-3);margin-top:4px;font-size:11px;line-height:1.4;display:block}.int-topo-node.kind-core{background:#1d4ed80f;border-color:#1d4ed873}.int-exception-list{flex-direction:column;gap:8px;max-height:360px;display:flex;overflow:auto}.int-exception-item{border:1px solid var(--line);text-align:left;cursor:pointer;width:100%;color:inherit;background:#fff;border-radius:10px;justify-content:space-between;gap:10px;padding:10px 12px;display:flex}.int-exception-item.static{cursor:default}.int-exception-item strong{font-size:13px;display:block}.int-exception-item em{color:#d97706;margin-top:2px;font-size:12.5px;font-style:normal;display:block}.int-exception-item small{color:var(--text-3);margin-top:4px;font-size:11.5px;display:block}.int-exception-item>span{color:var(--text-3);white-space:nowrap;font-size:11.5px}.int-badge{background:#f1f5f9;border-radius:999px;padding:2px 8px;font-size:11.5px;font-style:normal;font-weight:650}.int-badge.ok{color:#059669;background:#0596691f}.int-badge.bad{color:#dc2626;background:#dc26261f}.int-badge.mid{color:#d97706;background:#d977061f}.int-badge.off{color:#64748b;background:#64748b1f}.int-platform-tabs{grid-template-columns:1fr 1fr;gap:10px;display:grid}.int-platform-tab{text-align:left;border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:12px;padding:14px 16px;position:relative}.int-platform-tab.on{background:#1d4ed80d;border-color:#1d4ed859}.int-platform-tab strong{font-size:14px;display:block}.int-platform-tab span{color:var(--text-3);margin-top:4px;font-size:12px;display:block}.int-platform-tab em{position:absolute;top:14px;right:12px}.int-campus-summary{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;padding:12px 14px;display:grid}.int-campus-summary span{color:var(--text-3);font-size:11.5px;display:block}.int-campus-summary b{margin-top:4px;font-size:13px;display:block}.int-campus-summary .ok-text{color:#059669}.int-campus-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.int-mode-cards{flex-direction:column;gap:8px;display:flex}.int-mode-card{text-align:left;border:1px solid var(--line);cursor:pointer;background:#f8fafc;border-radius:12px;padding:12px}.int-mode-card.on{background:#1d4ed80f;border-color:#1d4ed859}.int-mode-card strong{font-size:13px;display:block}.int-mode-card span{color:var(--text-2);margin-top:6px;font-size:12px;line-height:1.5;display:block}.int-scope-list{flex-direction:column;gap:8px;display:flex}.int-scope-item{border:1px solid var(--line);background:#fff;border-radius:10px;align-items:flex-start;gap:10px;padding:8px 10px;display:flex}.int-scope-item strong{font-size:12.5px;display:block}.int-scope-item small{color:var(--text-3);margin-top:2px;font-size:11.5px;display:block}.int-bullet-list{color:var(--text-2);margin:0;padding-left:18px;font-size:13px;line-height:1.65}.int-status-chips{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}.int-status-chips span{border-radius:999px;padding:4px 10px;font-size:12px;font-weight:650}.int-status-chips .ok{color:#059669;background:#0596691f}.int-status-chips .mid{color:#d97706;background:#d977061f}.int-ops-tools{flex-wrap:wrap;gap:8px;display:flex}.int-chip{border:1px solid var(--line);color:var(--text-2);cursor:pointer;background:#fff;border-radius:999px;padding:7px 12px;font-size:12.5px}.int-chip.on{color:var(--blue);background:#1d4ed814;border-color:#1d4ed847;font-weight:650}.int-cat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.int-cat-card{text-align:left;border:1px solid var(--line);cursor:pointer;background:#fbfdff;border-radius:12px;padding:10px 12px}.int-cat-card.on,.int-cat-card:hover{background:#1d4ed80a;border-color:#1d4ed847}.int-cat-card strong{font-size:13px;display:block}.int-cat-card small{color:var(--text-3);margin-top:4px;font-size:11.5px;line-height:1.4;display:block}.int-sub-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.int-sub-card{border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px}.int-sub-card>header{justify-content:space-between;gap:8px;margin-bottom:8px;display:flex}.int-sub-card strong{font-size:13.5px;display:block}.int-sub-card small{color:var(--text-3);margin-top:2px;font-size:11.5px;display:block}.int-sub-card>p{color:var(--text-2);margin:0 0 10px;font-size:12.5px;line-height:1.45}.int-filter-bar{align-items:center}.int-drawer.wide{width:min(860px,96vw)}.int-code{color:#e2e8f0;background:#0f172a;border-radius:10px;margin-top:12px;padding:12px;font-size:12px;overflow:auto}button.linkish{color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;padding:0}button.linkish:hover strong{color:var(--blue)}@media (max-width:1280px){.int-kpi-row,.int-kpi-row.compact,.int-overview-grid,.int-campus-grid,.int-campus-summary,.int-platform-tabs,.int-cat-grid,.int-sub-grid{grid-template-columns:1fr}}.int-split{grid-template-columns:280px minmax(0,1fr);gap:12px;display:grid}.int-split.model-split{grid-template-columns:220px minmax(0,1fr)}.int-cat-stack{flex-direction:column;gap:8px;max-height:640px;display:flex;overflow:auto}.int-inline-check{color:var(--text-2);align-items:center;gap:6px;font-size:12.5px;display:inline-flex}@media (max-width:1280px){.int-split,.int-split.model-split{grid-template-columns:1fr}}.sys-page{flex-direction:column;gap:12px;margin-bottom:16px;display:flex}.sys-topbar{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);background:#fff;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.sys-topbar h2{margin:0;font-size:18px}.sys-topbar p{color:var(--text-2);margin:4px 0 0;font-size:12.5px}.sys-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sys-kpi-row{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;display:grid}.sys-kpi-row.compact{grid-template-columns:repeat(4,minmax(0,1fr))}.sys-kpi{border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px 14px}.sys-kpi span{color:var(--text-3);font-size:12px;display:block}.sys-kpi b{margin-top:4px;font-size:22px;font-weight:700;display:block}.sys-kpi small{color:var(--text-3);margin-top:4px;font-size:11.5px;display:block}.sys-kpi.tone-blue b{color:var(--blue)}.sys-kpi.tone-green b{color:#059669}.sys-kpi.tone-red b{color:#dc2626}.sys-kpi.tone-amber b{color:#d97706}.sys-kpi.tone-cyan b{color:#0891b2}.sys-panel{padding:12px 14px}.sys-panel-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.sys-panel-head strong{font-size:14px}.sys-panel-head span{color:var(--text-3);font-size:12px}.sys-overview-grid{grid-template-columns:minmax(0,1.35fr) minmax(280px,.9fr);gap:12px;display:grid}.sys-side-stack{flex-direction:column;gap:12px;display:flex}.sys-topo{background:linear-gradient(#f8fafc,#eef2ff);border:1px solid #94a3b840;border-radius:14px;min-height:360px;position:relative;overflow:hidden}.sys-topo-lines{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.sys-topo-lines line{stroke:#1d4ed840;stroke-width:.35px}.sys-topo-node{text-align:left;cursor:pointer;z-index:2;width:min(220px,40%);box-shadow:var(--shadow-sm);background:#fff;border:1px solid #1d4ed82e;border-radius:12px;padding:10px 12px;position:absolute;transform:translate(-50%,-50%)}.sys-topo-node strong{font-size:12.5px;display:block}.sys-topo-node span{color:var(--text-3);margin-top:4px;font-size:11px;display:block}.sys-topo-node em{margin-top:6px;font-size:11px;font-style:normal;font-weight:650;display:block}.sys-topo-node.ok em{color:#059669}.sys-topo-node.bad em{color:#dc2626}.sys-topo-node.mid em{color:#d97706}.sys-badge{background:#f1f5f9;border-radius:999px;padding:2px 8px;font-size:11.5px;font-style:normal;font-weight:650}.sys-badge.ok{color:#059669;background:#0596691f}.sys-badge.bad{color:#dc2626;background:#dc26261f}.sys-badge.mid{color:#d97706;background:#d977061f}.sys-badge.off{color:#64748b;background:#64748b1f}.sys-list{flex-direction:column;gap:8px;display:flex}.sys-list-item{border:1px solid var(--line);text-align:left;cursor:pointer;width:100%;color:inherit;background:#fff;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.sys-list-item.on{background:#1d4ed80d;border-color:#1d4ed847}.sys-list-item.static{cursor:default}.sys-list-item strong{font-size:13px;display:block}.sys-list-item small{color:var(--text-3);margin-top:3px;font-size:11.5px;display:block}.sys-server-cards{grid-template-columns:1fr 1fr;gap:8px;display:grid}.sys-server-card{text-align:left;border:1px solid var(--line);cursor:pointer;color:inherit;background:#fff;border-radius:12px;padding:12px}.sys-server-card>header{justify-content:space-between;gap:8px;margin-bottom:6px;display:flex}.sys-server-card p{color:var(--text-2);margin:0;font-size:12.5px}.sys-server-card small{color:var(--text-3);font-size:11.5px}.sys-split{grid-template-columns:240px minmax(0,1fr);gap:12px;display:grid}.sys-chips{flex-wrap:wrap;gap:8px;display:flex}.sys-chip{border:1px solid var(--line);color:var(--text-2);cursor:pointer;background:#fff;border-radius:999px;padding:7px 12px;font-size:12.5px}.sys-chip.on{color:var(--blue);background:#1d4ed814;border-color:#1d4ed847;font-weight:650}.sys-section-title{margin:14px 0 8px;font-size:13px}.sys-perm-tree{flex-direction:column;gap:10px;display:flex}.sys-perm-group{border:1px solid var(--line);background:#f8fafc;border-radius:10px;padding:10px 12px}.sys-perm-group label{align-items:center;gap:6px;margin-right:12px;font-size:12.5px;display:inline-flex}.sys-perm-children{flex-wrap:wrap;gap:8px 14px;margin-top:8px;display:flex}.sys-tag-row{flex-wrap:wrap;gap:6px;display:flex}.sys-tag-row.wrap{gap:8px}.sys-tag-row span{color:var(--blue);background:#1d4ed814;border-radius:999px;padding:3px 8px;font-size:11.5px}.sys-portal-preview{min-height:220px}.sys-portal-hero{color:#fff;background:linear-gradient(135deg,#1d4ed8,#0ea5e9);border-radius:14px;padding:28px 20px}.sys-portal-hero b{font-size:20px}.sys-portal-entries{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.sys-portal-entries span{background:#ffffff2e;border-radius:8px;padding:6px 10px;font-size:12px}.sys-bullets{color:var(--text-2);margin:0;padding-left:18px;font-size:13px;line-height:1.65}.sys-drawer{width:min(520px,96vw)}.sys-campus-time{flex-wrap:wrap;align-items:stretch;gap:16px;padding:14px;display:flex}.sys-campus-time>div:first-child span{color:var(--text-3);font-size:12px;display:block}.sys-campus-time>div:first-child b{margin-top:4px;font-size:28px;display:block}.sys-campus-time>div:first-child small{color:var(--text-3);margin-top:4px;display:block}.sys-code{color:#e2e8f0;background:#0f172a;border-radius:10px;margin:0;padding:12px;font-size:12px;overflow:auto}@media (max-width:1280px){.sys-kpi-row,.sys-kpi-row.compact,.sys-overview-grid,.sys-split,.sys-server-cards{grid-template-columns:1fr}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}
