
:root{color-scheme:dark;--cyan:#57fce8;--font:"Microsoft YaHei","PingFang SC",Arial,sans-serif}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#001a1c;color:#dffff9;font-family:var(--font)}button,input{font:inherit}button{cursor:pointer;touch-action:manipulation}button:focus-visible,input:focus-visible{outline:2px solid #c0fff7;outline-offset:4px}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}#viewport{position:fixed;inset:0;background:radial-gradient(ellipse,#003c3e,#001719 75%)}.scene{--s:1;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);isolation:isolate;overflow:hidden}.scene[hidden]{display:none}.vector-scene,.effects{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none;user-select:none}.brand{position:absolute;z-index:3;left:20%;width:60%;text-align:center;font-weight:600;color:#e5fff5;white-space:nowrap;letter-spacing:calc(2px * var(--s));text-shadow:0 2px 2px #002b23}.login-brand{top:1.9%;font-size:calc(24px * var(--s))}.dashboard-brand{top:1.55%;font-size:calc(43px * var(--s))}.center-heading{position:absolute;top:17.6%;width:100%;text-align:center;font-size:calc(32px * var(--s));letter-spacing:calc(7px * var(--s));font-weight:500}.login-scene .effects{z-index:1}.radar{transform-origin:603px 335px;animation:radar 20s linear infinite}.circuit-flow{fill:none;stroke:#a6faff;stroke-width:2;stroke-dasharray:48 850;stroke-linecap:round;animation:circuit 5s linear infinite}.circuit-flow.reverse{animation-direction:reverse;animation-delay:-2.5s}.horizontal-flow{stroke-dasharray:70 300;animation:circuit 5s linear infinite;opacity:.5}#loginForm{position:absolute;inset:0;z-index:3}.credential{position:absolute;left:43.5833%;width:17.25%;height:3.994%;padding:calc(4px * var(--s)) calc(8px * var(--s));border:0;border-radius:0;background:transparent;color:#d9fffd;font-size:calc(11px * var(--s));letter-spacing:calc(.4px * var(--s));caret-color:#38fbef}.credential::placeholder{color:#c5e2df;opacity:1;font-size:calc(10px * var(--s))}.username{top:35.947%}.password{top:46.3018%}.credential:focus{outline:0;background:#1abfc510}.remember{position:absolute;left:39.1667%;top:52.5148%;height:2.5148%;display:flex;align-items:center;gap:calc(4px * var(--s));color:#32e8e9;font-size:calc(11px * var(--s));cursor:pointer}.remember input{appearance:none;width:calc(13px * var(--s));height:calc(13px * var(--s));margin:0;border:1px solid #258baa;background:#00171e;display:grid;place-content:center}.remember input:checked:after{content:"✓";color:#67fff2;font-size:calc(12px * var(--s));line-height:1}.forgot{position:absolute;left:56.25%;top:52.5148%;width:5.3333%;height:2.6627%;padding:0;border:0;background:none;color:#30dfeb;font-size:calc(11px * var(--s));text-align:right}.forgot:hover{color:#c1ffff}.submit{position:absolute;left:39.4167%;top:59.0237%;width:22.25%;height:5.7692%;color:#efffff;border:1px solid #47d8d2;background:linear-gradient(110deg,#0096a5,#00a7ae);clip-path:polygon(2% 0,100% 0,100% 85%,98% 100%,0 100%,0 15%);font-size:calc(15px * var(--s));font-weight:bold;letter-spacing:calc(1px * var(--s));transition:background .2s}.submit:before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,#a1fff73d 50%,transparent 70%);transform:translateX(-140%);animation:buttonSweep 6s ease-in-out infinite}.submit span{position:relative}.submit:hover{filter:brightness(1.2)}.submit:disabled{cursor:wait;background:#037f88;font-size:calc(12px * var(--s))}.login-status{position:absolute;left:38.3333%;top:65.8284%;width:24.1667%;text-align:center;color:#75f9ef;font-size:calc(11px * var(--s));margin:0}.login-note{position:absolute;left:1.8%;bottom:2.2%;color:#6badae;font-size:calc(10px * var(--s));letter-spacing:calc(1px * var(--s));opacity:.7}.battery{position:absolute;height:2.3669%;top:48.2249%;width:7.0833%;pointer-events:none;z-index:2;background:linear-gradient(90deg,transparent,#a3ffffa0,transparent);background-size:40% 100%;background-repeat:no-repeat;animation:battery 2.7s linear infinite;mix-blend-mode:screen}.battery-left{left:24%}.battery-right{left:68.0833%;animation-delay:-1.3s}.clock{position:absolute;top:4.85%;right:1.1%;width:25%;color:#d4e8df;text-align:right;white-space:nowrap;font-size:calc(28px * var(--s));font-family:Arial,"Microsoft YaHei",sans-serif;line-height:1.3;z-index:4}.dashboard-effects{z-index:2}.shield-shine{animation:shieldShine 7s ease-in-out infinite}.pedestal-glow{animation:breathe 3.8s ease-in-out infinite}.floor-flow{stroke-dasharray:60 550;animation:floorStream 6s linear infinite}#particles{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}#industries{position:absolute;inset:0;z-index:3;pointer-events:none}.industry-button{position:absolute;background:transparent;border:none;padding:0;pointer-events:auto;color:#e3fff3;transition:filter .25s;text-align:left}.card-panel{position:absolute;inset:0;width:100%;height:100%;transition:filter .2s}.industry-label{position:absolute;left:10%;top:40%;font-size:calc(31px * var(--s));font-weight:500;letter-spacing:calc(1px * var(--s));white-space:nowrap;line-height:1.4;text-shadow:0 2px 2px #001b1a}.industry-icon{position:absolute;right:-1%;top:0;width:30%;height:100%}.sector-symbol{position:absolute;left:28%;top:-2%;width:40%;height:48%;stroke:#c1ffea;fill:none;stroke-width:2.3;stroke-linejoin:round;stroke-linecap:round}.icon-base{position:absolute;left:0;bottom:0;width:100%;height:62%}.is-right .card-panel{transform:scaleX(-1)}.is-right .industry-label{left:auto;right:10%;text-align:right}.is-right .industry-icon{right:auto;left:-1%}.industry-button:before{content:"";position:absolute;inset:17% 6% 3%;background:linear-gradient(0deg,#04e9b91c,transparent);opacity:0;border-bottom:1px solid #62ffe0;transition:opacity .2s}.industry-button:hover:before,.industry-button:focus-visible:before{opacity:1}.industry-button:hover .card-panel{filter:brightness(1.7)}.industry-button:hover .sector-symbol{stroke:#f0fff8;filter:drop-shadow(0 0 3px #45ffcf)}.industry-button:focus-visible{outline:1px solid #9affe0}.industry-button:active{filter:brightness(1.3)}.side-control{position:absolute;top:51.8%;width:2.636%;height:4.844%;z-index:5;background:transparent;border:0}.side-left{left:1.23%}.side-right{right:1.23%}.side-control:hover{background:radial-gradient(#45ffd733,transparent 75%)}.utility{position:absolute;bottom:1.25%;right:1.5%;display:flex;align-items:center;gap:calc(28px * var(--s));z-index:5;font-size:calc(15px * var(--s));opacity:.55;transition:opacity .2s}.utility:hover,.utility:focus-within{opacity:1}.utility button{display:flex;gap:calc(9px * var(--s));align-items:center;background:none;border:0;padding:calc(5px * var(--s));color:#a4d9ce;font-size:calc(15px * var(--s))}.utility svg{width:calc(17px * var(--s));height:calc(17px * var(--s));stroke:currentColor;stroke-width:1.3;fill:none}.utility button:hover{color:#e0fff4}.demo-label{display:flex;align-items:center;gap:calc(9px * var(--s));color:#99c8bb;font-size:calc(13px * var(--s))}i{display:inline-block;width:5px;height:5px;background:#6affd8;border-radius:50%;box-shadow:0 0 8px #3affd4}
dialog{position:fixed;color:#d8fff2;background:linear-gradient(135deg,#073938fa,#001d25fc);border:1px solid #378b7d;width:min(580px,90vw);max-height:90vh;overflow:auto;padding:36px;box-shadow:0 0 80px #00af9533;border-radius:4px;font-family:var(--font)}dialog::backdrop{background:#00171dbb;backdrop-filter:blur(7px)}.close{position:absolute;right:16px;top:10px;font-size:27px;background:none;border:none;color:#90dfca}.close:hover{color:white}.eyebrow{font-size:9px;letter-spacing:3px;color:#57a996}dialog h2{font-size:27px;font-weight:500;letter-spacing:3px;margin:20px 0}.detail-subtitle{color:#75b6a7;font-size:12px;display:flex;justify-content:space-between;align-items:center}.detail-subtitle>span{font-size:10px;border:1px solid #3d7767;padding:3px 8px;color:#80c0ae}.metrics{display:flex;justify-content:space-between;margin:32px 0}.metrics>div{display:flex;flex-direction:column;gap:7px}.metrics strong{color:#60f4ce;font-size:31px;font-weight:400;font-family:Arial,var(--font)}.metrics .status-value{font-size:26px;line-height:35px}.metrics span{font-size:11px;color:#71a99a}.chart{display:flex;align-items:flex-end;gap:20px;height:130px;padding:0 10px;border-bottom:1px solid #357e6c;background:repeating-linear-gradient(0deg,transparent 0 31px,#38a38616 32px)}.chart>div{flex:1;background:linear-gradient(#34e9bb,#10aa8e15);border-top:2px solid #a6ffde;animation:chartGrow .6s ease both;transform-origin:bottom}.chart-label{font-size:10px;color:#77a795;display:flex;justify-content:space-between;margin-top:13px}.chart-label i{margin-left:5px;width:4px;height:4px}.detail-note{font-size:10px;color:#4f8375;margin:30px 0 0;line-height:1.8}#toast{position:fixed;bottom:7vh;left:50%;transform:translate(-50%,15px);max-width:85vw;opacity:0;padding:15px 24px;background:#003c3eeb;border:1px solid #3c9987;color:#d4fff0;font-size:13px;z-index:100;pointer-events:none;transition:opacity .25s,transform .25s;line-height:1.7;border-radius:3px}#toast.show{opacity:1;transform:translate(-50%,0)}@keyframes radar{to{transform:rotate(360deg)}}@keyframes circuit{to{stroke-dashoffset:-898}}@keyframes floorStream{to{stroke-dashoffset:-610}}@keyframes buttonSweep{0%,65%{transform:translateX(-140%)}95%,100%{transform:translateX(140%)}}@keyframes battery{from{background-position:-40% 0}to{background-position:140% 0}}@keyframes shieldShine{0%,55%{translate:0 0;opacity:0}60%{opacity:1}95%{translate:430px 0;opacity:1}100%{translate:430px 0;opacity:0}}@keyframes breathe{50%{opacity:.35}}@keyframes chartGrow{from{transform:scaleY(0)}}@media(max-width:600px){dialog{padding:26px}.metrics strong{font-size:25px}.chart{gap:12px}dialog h2{font-size:22px}#toast{font-size:11px;width:max-content}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.orbit-dot{display:none}}
/* Edge-to-edge layout. The central assembly retains its own aspect ratio. */
.scene{inset:0;left:0;top:0;transform:none}
.dashboard-scene>.vector-scene{object-fit:fill}
.core-stage{position:absolute;left:50%;top:56.858%;width:calc(777.9296875px * var(--s));height:calc(822.3828125px * var(--s));transform:translate(-50%,-50%);pointer-events:none;z-index:1;perspective:calc(1200px * var(--s))}
.core-art{position:absolute;inset:0;width:100%;height:100%}
.shield-object{position:absolute;left:28.5714286%;top:12.1621622%;width:40%;height:46.6216216%;transform-origin:50% 54%;animation:shieldTurn 12s ease-in-out infinite;transform-style:preserve-3d}
.shield-object img{display:block;width:100%;height:100%;backface-visibility:visible}
@keyframes shieldRotate{0%{transform:rotateY(0deg)}100%{transform:rotateY(360deg)}}
@media(prefers-reduced-motion:reduce){.shield-object{animation:none}}

/* One symmetric title panel, one shared center for the panel and its text. */
.center-heading{left:50%;top:16.4%;width:calc(578px * var(--s));height:calc(111.111px * var(--s));transform:translateX(-50%);display:grid;place-items:start center;padding:calc(20px * var(--s)) 0 0;z-index:3;line-height:1.4;white-space:nowrap}
.heading-panel{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.center-heading>span{position:relative;display:block;letter-spacing:calc(7px * var(--s));padding-left:calc(7px * var(--s))}

/* Keep the visible front within a natural viewing range; never mirror the glyph. */
.shield-object{transform-origin:50% 52%}
@keyframes shieldTurn{0%,100%{transform:rotateY(-18deg) rotateX(-3deg)}50%{transform:rotateY(22deg) rotateX(3deg)}}
