@font-face{font-family:'Noto Sans SC';src:url('assets/fonts/NotoSansSC-VF.woff2') format('woff2');font-weight:100 900;font-display:swap}
.source-pages{font-family:'Noto Sans SC',Arial,sans-serif;line-height:1.5;color:#202937;width:100%;background:#fff;isolation:isolate}
.source-pages,.source-pages *,.source-pages *::before,.source-pages *::after{box-sizing:border-box;border-width:0;border-style:solid}
.source-pages p,.source-pages h1,.source-pages h2,.source-pages h3{margin:0}
.source-pages img{display:block;vertical-align:middle;max-width:none}
.source-pages [style*='mask-image']{mask-repeat:no-repeat;mask-composite:intersect;mask-clip:no-clip}
/* Keep platform UI text in the browser text renderer instead of compositing
   each small label through multiple exported bitmap mask surfaces. */
body.source-platform .source-pages :is(p,text){mask-image:none!important;-webkit-mask-image:none!important}
.source-pages a{color:inherit;text-decoration:none}
.source-pages button{font:inherit;cursor:pointer}
.source-pages button:not([class*="bg-"]){background-color:transparent}
.source-pages [data-name="Tab 0"],.source-pages [data-name="Tab 1"],.source-pages [data-name="Tab / Today"]{display:flex;align-items:center;justify-content:center;cursor:pointer}
.source-pages [data-name="Tab 0"]>p,.source-pages [data-name="Tab 1"]>p,.source-pages [data-name="Tab / Today"]>p{position:static!important;transform:none!important;translate:none!important;width:auto!important;height:auto!important;margin:0!important;text-align:center;white-space:nowrap}
.source-pages [data-name^="Task status /"]{left:auto!important;right:0;width:max-content!important;min-width:21.57%;padding-inline:8px;display:flex;align-items:center;justify-content:center}
.source-pages [data-name="Conversation"]>[data-name="User message"]{width:max-content;max-width:calc(100% - 56px)}
.source-pages [data-name="Conversation"]>[data-name="User message"]>p{width:max-content;max-width:100%;white-space:nowrap}
/* Short actions hug their labels; source-scale keeps desktop and expanded views consistent. */
.source-pages .source-section{--detail-unit:1}
.source-pages .source-section[data-source-width="900"]{--detail-unit:.65}
.source-pages [data-name="Workspace context"]{display:flex;flex-direction:column;align-items:flex-start;gap:calc(12px * var(--detail-unit));padding:calc(16px * var(--detail-unit));width:max-content;max-width:calc(100% - 56px * var(--detail-unit));height:auto}
.source-pages [data-name="Workspace context"]>p{position:static;width:auto;height:auto;white-space:nowrap;margin:0 0 calc(4px * var(--detail-unit))}
.source-pages [data-name="Workspace context"]>[data-name^="Context row"]{position:static;display:flex;align-items:center;justify-content:center;width:max-content;max-width:100%;height:auto;min-height:calc(48px * var(--detail-unit));padding:calc(12px * var(--detail-unit)) calc(16px * var(--detail-unit))}
.source-pages [data-name="Workspace context"]>[data-name^="Context row"]>p{position:static;width:auto;height:auto;white-space:nowrap;text-align:center;transform:none;translate:none}
.source-pages [data-source-link]{transition:filter .18s ease}
.source-pages [data-source-link]:hover{filter:none}
.source-pages .source-compact-hero>.source-canvas{top:-96px!important}
.source-spinner{position:relative;width:100%;height:100%;animation:source-spinner-turn 1s steps(12) infinite}
.source-spinner i{position:absolute;left:45%;top:4%;width:10%;height:25%;border-radius:2px;background:#8e949b;transform-origin:50% 184%;transform:rotate(calc(var(--spoke) * 30deg));opacity:calc((var(--spoke) + 1) / 12)}
@keyframes source-spinner-turn{to{transform:rotate(360deg)}}
.source-pages .source-section{position:relative;width:100%;overflow:hidden;aspect-ratio:var(--source-width,1440)/var(--source-height)}
.source-pages .source-canvas{position:absolute!important;inset:0 auto auto 0;zoom:var(--source-scale,1);transform:none;transform-origin:top left}
.source-pages [data-source-section="architecture"] p[style*="mask-image"]{mask-image:none!important;height:auto;bottom:auto;line-height:1.5}
.source-pages [data-source-section="workspace"] [data-name^="SENUSMART / Interactive AI preview"]{filter:none!important;box-shadow:0 10px 24px #33476118}
.source-pages [data-source-section="workspace"] :is([data-name="Operations overview"],[data-name="Tasks card"],[data-name="Schedule card"]){backdrop-filter:none!important}
.source-pages [data-source-link]{cursor:pointer}
.source-pages [data-source-link]:focus-visible{outline:3px solid #1682ff;outline-offset:5px}
body.source-home #page-home,body.source-platform [data-page='platform']{display:none!important}
body.source-home main,body.source-platform main{padding-top:0}
body.source-home .topbar,body.source-platform .topbar{position:sticky!important;top:0;z-index:50;background:rgba(255,255,255,.66)!important;color:#202937;border-color:#2029370d!important;backdrop-filter:blur(24px) saturate(160%)!important;-webkit-backdrop-filter:blur(24px) saturate(160%)!important;}
body.source-home .topbar.is-scrolled,body.source-platform .topbar.is-scrolled{background:rgba(247,249,251,.72)!important}
body.source-home .topbar .brand img{filter:none!important}
body.source-home .topbar select,body.source-home .topbar .language-trigger{color:#475569!important}
.source-pages[hidden]{display:none!important}
/* Match the shared footer to the source's 80 / 1440 content gutter. */
body.source-home .slogan-footer,body.source-platform .slogan-footer{width:88.888889%;max-width:none;margin:0 auto;padding:24px 0;box-sizing:border-box}
@media(prefers-reduced-motion:reduce){.source-pages *{animation:none!important}}
@font-face{font-family:'Inter';font-style:normal;font-weight:100;src:url('assets/fonts/Inter-100.woff2') format('woff2');font-display:swap}
@font-face{font-family:'Inter';font-style:normal;font-weight:200;src:url('assets/fonts/Inter-200.woff2') format('woff2');font-display:swap}
@font-face{font-family:'Inter';font-style:normal;font-weight:300;src:url('assets/fonts/Inter-300.woff2') format('woff2');font-display:swap}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;src:url('assets/fonts/Inter-400.woff2') format('woff2');font-display:swap}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;src:url('assets/fonts/Inter-500.woff2') format('woff2');font-display:swap}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;src:url('assets/fonts/Inter-600.woff2') format('woff2');font-display:swap}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;src:url('assets/fonts/Inter-700.woff2') format('woff2');font-display:swap}
@font-face{font-family:'Inter';font-style:normal;font-weight:800;src:url('assets/fonts/Inter-800.woff2') format('woff2');font-display:swap}
@font-face{font-family:'Inter';font-style:normal;font-weight:900;src:url('assets/fonts/Inter-900.woff2') format('woff2');font-display:swap}
@font-face{font-family:'Noto Sans TC';font-style:normal;font-weight:400;src:url('assets/fonts/NotoSansTC-400.woff2') format('woff2');font-display:swap}
@font-face{font-family:'Noto Sans TC';font-style:normal;font-weight:700;src:url('assets/fonts/NotoSansTC-700.woff2') format('woff2');font-display:swap}
/* Shared capsule feedback. The source homepage uses a light header over a dark hero. */
body.source-home .topbar,body.source-home.home-dark-header .topbar{background:rgba(255,255,255,.94)!important}
body.source-home .topbar.is-scrolled{background:rgba(247,249,251,.94)!important}
body .topbar .navlinks a{display:inline-flex;align-items:center;justify-content:center;transition:background-color .18s ease,color .18s ease,box-shadow .18s ease}
.source-pages :is(button,[data-source-link],[data-name="Tab 0"],[data-name="Tab 1"],[data-name="Tab / Today"],[data-name^="Switch to "],[data-name="Scene 0"],[data-name="Scene 1"],[data-name="Scene 2"]){transition:box-shadow .18s ease,translate .18s ease,scale .12s ease;cursor:pointer}
.source-pages :is(button,[data-source-link],[data-name="Tab 0"],[data-name="Tab 1"],[data-name="Tab / Today"],[data-name^="Switch to "],[data-name="Scene 0"],[data-name="Scene 1"],[data-name="Scene 2"]):not(:disabled):is(:hover,:focus-visible){box-shadow:none;translate:none;filter:none;outline:1px solid #a9c9e8;outline-offset:0}
.source-pages :is(button,[data-source-link],[role="button"]):not(:disabled):active{box-shadow:none;translate:none;scale:1}
.source-pages :is(button,[data-source-link],[role="button"]):focus-visible{outline:2px solid #7b8794;outline-offset:3px}
body .topbar .button{transition:background-color .18s ease,box-shadow .18s ease,scale .12s ease}
body .topbar .button:hover,body .topbar .button:focus-visible{background:#0874ed!important;box-shadow:0 0 0 3px #248bff24}
body .topbar .button:active{scale:.98}
@media(prefers-reduced-motion:reduce){.source-pages :is(button,[data-source-link],[role="button"]),body .topbar .navlinks a{transition:none!important}}

/* Workspace cards retain their semantic colours throughout interaction. */
/* System selectors remain distinct against the full-width pale section. */
.source-pages [data-source-section="devices"] [data-name^="Switch to "]{border:1px solid #cbd5e1;padding:11px calc(var(--system-switch-padding,22px) - 1px);background:#fff;color:#3d4a5c;box-shadow:none;transition:background-color .16s ease,border-color .16s ease}
.source-pages [data-source-section="devices"] [data-name^="Switch to "][aria-pressed="true"]{background:var(--site-primary,#0757cf);border-color:var(--site-primary,#0757cf);color:#fff}
.source-pages [data-source-section="devices"] [data-name^="Switch to "]:hover{background:#eaf2ff;border-color:#8bb4e5;outline:none;box-shadow:none;translate:none;filter:none}
.source-pages [data-source-section="devices"] [data-name^="Switch to "][aria-pressed="true"]:hover{background:var(--site-primary,#0757cf);border-color:var(--site-primary,#0757cf)}
.source-pages [data-source-section="devices"] [data-name^="Switch to "]:focus-visible{outline:2px solid var(--site-primary,#0757cf);outline-offset:3px;box-shadow:none}
.source-pages [data-name="Operations overview"],.source-pages [data-name="Status tile"]{transition:box-shadow .18s ease,translate .18s ease,scale .12s ease}
.source-pages [data-name="Operations overview"]:hover,.source-pages [data-name="Status tile"]:hover{box-shadow:none;translate:none;filter:none}
.source-pages [data-name="Operations overview"]:active,.source-pages [data-name="Status tile"]:active{box-shadow:none;translate:none;scale:1}
@media(prefers-reduced-motion:reduce){.source-pages :is(button,[data-source-link],[role="button"],[data-name="Operations overview"],[data-name="Status tile"]){transition:none!important;translate:none!important;scale:1!important}}
/* Pointer feedback is motion and colour, never an extra focus-like blue frame. */
.source-pages [data-source-section="workspace"] :is(button,[data-source-link],[role="button"],[data-name="Operations overview"],[data-name="Status tile"],[data-name="Tasks card"],[data-name="Schedule card"]){transition:translate .18s ease,background-color .18s ease;}
.source-pages [data-source-section="workspace"] :is(button,[data-source-link],[role="button"],[data-name="Operations overview"],[data-name="Status tile"],[data-name="Tasks card"],[data-name="Schedule card"]):hover{outline:none;translate:0 -2px;box-shadow:none;filter:none}
.source-pages [data-source-section="workspace"] :is([data-name="Tab 0"],[data-name="Tab 1"],[data-name="Tab / Today"]):hover{background-color:#e4edf7;translate:0 -1px}
.source-pages [data-source-section="workspace"] [data-name="Status tile"]:hover{background-color:#f4f8fd}
.source-pages [data-source-section="workspace"] :is(button,[data-source-link],[role="button"]):active{translate:0 0}
.source-pages [data-source-section="workspace"] :is(button,[data-source-link],[role="button"]):focus-visible{outline:2px solid var(--site-primary,#0757cf);outline-offset:3px}

/* Native SVGs contain Figma gauge shadows; avoid duplicating them. */
.source-pages [data-source-section="devices"] [data-name^="区域环境 /"]{background:linear-gradient(180deg,#fff,#eef2f6);box-shadow:0 2.137px 5.699px -.712px #141f2e1f,0 .356px 1.069px #141f2e0d}
.source-pages [data-source-section="devices"] [data-name="正圆立体读条"]{filter:none}
.source-pages [data-source-section="devices"] [data-name="Area console / native source"]{box-shadow:inset 0 .429px .429px #ffffff2e}
.source-pages [data-source-section="devices"] [data-name="System overview / native source"]{box-shadow:none}
/* Offline is communicated by its muted fill and status, not a dark perimeter. */
.source-pages [data-source-section="devices"] [data-name="区域环境 / B1 数据机房"]{border-color:rgba(255,255,255,.9);background:linear-gradient(180deg,#e0e2e5,#d2d5d9);box-shadow:inset 0 .356px .356px #fffffff2,0 2.137px 5.699px -.712px #141f2e1f,0 .356px 1.069px #141f2e0d}
/* Shared segmented control: quiet fill feedback, stable text and no pointer outline. */
.source-pages :is([data-source-section="memory"],[data-source-section="workspace"]) .source-segment{border:0;border-radius:999px;background:transparent;box-shadow:none;transition:background-color .18s ease,translate .18s ease;}
.source-pages :is([data-source-section="memory"],[data-source-section="workspace"]) .source-segment[aria-pressed="true"]{background:#fff;box-shadow:0 2px 6px #25384a0a;}
.source-pages :is([data-source-section="memory"],[data-source-section="workspace"]) .source-segment:hover{background:#e4edf7;outline:none;box-shadow:none;translate:0 -1px;filter:none;}
.source-pages :is([data-source-section="memory"],[data-source-section="workspace"]) .source-segment[aria-pressed="true"]:hover{background:#fff;}
.source-pages :is([data-source-section="memory"],[data-source-section="workspace"]) .source-segment:active{translate:0 0;background:#dce7f2;}
.source-pages :is([data-source-section="memory"],[data-source-section="workspace"]) .source-segment:focus-visible{outline:2px solid #7c98b3;outline-offset:3px;}
/* Scene-only navigation: source proportions and soft building selector. */
.source-pages .scene-floor-strip{gap:10px!important;overflow:visible!important}
.source-pages .scene-floor-label{width:43px!important;padding:0!important;justify-content:center!important;border:0!important;background:transparent!important;border-radius:0!important;box-shadow:none!important}
.source-pages .scene-floor-label p{font-weight:600!important;color:#61718b!important}
.source-pages .scene-floor-arrow{width:28px!important;height:32px!important;padding:0!important;justify-content:center!important;border-radius:8px!important;color:#0078ff!important}
.source-pages .scene-floor-arrow p{font-size:20px!important;color:#0078ff!important}
.source-pages .scene-floor-arrow.is-muted{opacity:.3}
.source-pages .scene-building-select{min-width:70px!important;height:32px!important;justify-content:center!important;background:linear-gradient(#fff,#e7eef7)!important;border:0!important;box-shadow:0 2px 4px #203c5b25,inset 0 -1px 1px #c9daed!important}
.source-pages .scene-building-select p{color:#006dff!important}

.source-pages .scene-building-chevron{display:flex!important;align-items:center!important;gap:9px!important}
.source-pages .scene-building-chevron p{line-height:20px!important;margin:0!important}
.source-pages .scene-building-chevron::after{content:'';display:block;width:5px;height:5px;border-right:1.5px solid #006dff;border-bottom:1.5px solid #006dff;transform:translateY(-2px) rotate(45deg);flex:none}

/* Floor navigation: centre vector chevrons independently of text baselines. */
.source-pages .scene-floor-arrow{display:flex!important;align-items:center!important;justify-content:center!important;flex-shrink:0!important;line-height:0!important;box-sizing:border-box!important}
.source-pages .scene-floor-arrow .scene-floor-chevron{display:block!important;position:static!important;width:12px!important;height:12px!important;flex:0 0 12px!important;margin:0!important;transform:none!important;overflow:visible!important}

