:root{font-family:Inter,Microsoft YaHei,sans-serif;color:#132842;background:#eef4f8;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button{cursor:pointer}.auth-page{min-height:100vh;display:grid;grid-template-columns:58% 42%;background:#07273c}.brand-panel{position:relative;overflow:hidden;padding:38px 6vw;color:#fff;background:radial-gradient(circle at 22% 20%,#17647b 0,transparent 34%),linear-gradient(145deg,#06283e,#0b4557)}.brand{display:flex;align-items:center;gap:12px;font-weight:800;font-size:24px;letter-spacing:.5px}.brand img{width:46px;height:46px;object-fit:contain}.hero-copy{position:relative;z-index:2;margin-top:15vh;max-width:670px}.eyebrow{font-size:12px;font-weight:800;letter-spacing:2.5px;color:#f2a63b}.hero-copy h1{font-size:clamp(40px,4.1vw,67px);line-height:1.16;margin:18px 0}.hero-copy>p:last-child{font-size:20px;color:#c8dfe5}.solar-art{position:absolute;right:5%;bottom:8%;width:420px;height:250px}.sun{position:absolute;right:30px;top:10px;width:60px;height:60px;border-radius:50%;background:#ffbf42;box-shadow:0 0 35px #ffc957}.orbit{position:absolute;inset:0;border-top:2px solid #ffffff45;border-radius:50%}.panel{position:absolute;left:90px;bottom:65px;width:220px;padding:28px 12px;transform:rotate(-8deg);background:linear-gradient(135deg,#287c9a,#0f445d);border:4px solid #c8d8de;color:#7fc3dc;letter-spacing:8px;text-align:center;box-shadow:0 18px 25px #001a2677}.ground{position:absolute;left:45px;right:30px;bottom:30px;height:2px;background:#87a7ad}.auth-side{display:grid;place-items:center;padding:6vh 5vw;background:linear-gradient(135deg,#e9f2f4,#f9fbfc)}.glass-card{width:min(470px,100%);padding:42px;border:1px solid #fff;border-radius:24px;background:#ffffffc9;box-shadow:0 30px 80px #0a33452b;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.glass-card h2{font-size:36px;margin:8px 0}.sub{color:#52697c;font-size:16px;margin-bottom:28px}label{display:block;font-weight:700;font-size:14px;margin:15px 0 7px}input,textarea{width:100%;border:1px solid #cedbe3;border-radius:10px;background:#fff;padding:13px 14px;outline:none}input:focus,textarea:focus{border-color:#16829c;box-shadow:0 0 0 3px #16829c19}.code-row,.double,.triple{display:flex;gap:10px}.code-row input{flex:1}.form-meta,.actions,.toolbar,.device-top{display:flex;align-items:center;justify-content:space-between}.check{display:flex;align-items:center;gap:7px;font-weight:500}.check input{width:auto}.primary,.secondary{border:0;border-radius:10px;padding:13px 20px;font-weight:800}.primary{width:100%;color:#fff;background:linear-gradient(100deg,#0b697f,#159bb0);box-shadow:0 8px 18px #117e9535}.secondary{background:#e5eef2;color:#174054;white-space:nowrap}.compact{width:auto;padding:11px 18px}.link{border:0;background:none;color:#087c98;font-weight:700;padding:3px}.danger{color:#cf4b52;margin-left:auto}.notice{padding:10px 12px;border-radius:8px;color:#a94625;background:#fff1e8}.switch,.security{text-align:center;color:#567080}.security{font-size:13px;margin-top:28px}.app-shell{min-height:100vh;display:grid;grid-template-columns:230px 1fr}aside{position:sticky;top:0;height:100vh;padding:28px 20px;background:#082d42;color:#fff;display:flex;flex-direction:column}.brand.dark{font-size:20px}.brand.dark img{width:38px;height:38px}nav{margin-top:50px}nav button{width:100%;border:0;border-radius:10px;padding:13px;margin:5px 0;text-align:left;color:#b9d0da;background:transparent}nav button.active{color:#fff;background:#ffffff16}.aside-foot{margin-top:auto;border-top:1px solid #ffffff25;padding-top:18px;display:grid;gap:10px}.aside-foot button{border:0;background:none;color:#9ec1cd;text-align:left}.workspace{padding:36px 4vw}.workspace header{display:flex;justify-content:space-between;align-items:center}.workspace header h1{font-size:34px;margin:4px 0 25px}.global{cursor:pointer}.station-grid,.device-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}.station-card,.device-card,.metrics>div,.empty{border:1px solid #dce6eb;border-radius:16px;background:#fff;box-shadow:0 7px 24px #183c5010}.station-card{padding:22px;display:grid;grid-template-columns:48px 1fr;gap:15px;cursor:pointer}.station-card:hover{transform:translateY(-2px);box-shadow:0 12px 30px #183c5020}.station-icon{font-size:34px}.station-card h3,.device-card h3{margin:4px 0;font-size:20px}.station-card p,.mono{color:#667b89}.station-stats{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr auto 1fr;gap:8px;border-top:1px solid #edf2f4;padding-top:15px}.station-stats b{font-size:22px;color:#137b91}.station-stats span{font-size:13px;color:#7b8e99;align-self:center}.empty{text-align:center;padding:10vh 20px}.empty>div{font-size:60px}.metrics{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin:22px 0}.metrics>div{padding:18px}.metrics span{display:block;color:#6a7c88;font-size:13px}.metrics b{font-size:28px}.green{color:#1d9b73}.red{color:#d84f59}.orange{color:#e28a31}.back{border:0;background:none;color:#267589;padding:0}.toolbar{margin:26px 0 15px}.bind{display:flex;gap:8px}.bind input{width:260px}.device-card{padding:20px}.dot{width:9px;height:9px;border-radius:50%;background:#b1bdc3;margin-right:7px}.dot.online{background:#18ad74;box-shadow:0 0 0 4px #18ad7422}.device-data{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0}.device-data span{padding:10px;border-radius:8px;background:#f1f6f8;color:#71818a;font-size:12px}.device-data b{display:block;color:#18374a;font-size:18px}.detail-btn{width:100%;border:0;border-top:1px solid #e5ecef;padding:15px 0 0;background:none;color:#137e96;text-align:left;font-weight:700}.modal{position:fixed;inset:0;z-index:10;display:grid;place-items:center;padding:20px;background:#092a3b80}.modal-card{width:min(600px,100%);max-height:90vh;overflow:auto;padding:30px;border-radius:18px;background:#fff}.modal-card h2{margin-top:0}.modal-card textarea{min-height:80px}.modal-card .actions{justify-content:flex-end;gap:10px;margin-top:20px}.drawer{position:fixed;z-index:11;right:0;top:0;height:100vh;width:min(440px,94vw);padding:40px;background:#fff;box-shadow:-20px 0 50px #0c2b3d2e;overflow:auto}.close{float:right;border:0;background:none;font-size:28px}.drawer dl{display:grid;grid-template-columns:1fr 1fr}.drawer dt,.drawer dd{margin:0;padding:10px;border-bottom:1px solid #edf1f3}.drawer dt{color:#71818b}.drawer dd{text-align:right;font-weight:700}@media(max-width:900px){.auth-page{grid-template-columns:1fr}.brand-panel{min-height:35vh;padding:25px}.hero-copy{margin-top:8vh}.hero-copy h1{font-size:36px}.solar-art{opacity:.45;right:-100px}.auth-side{padding:25px}.app-shell{grid-template-columns:1fr}aside{position:static;height:auto;flex-direction:row;align-items:center;padding:15px 20px}aside nav{display:none}.aside-foot{margin:0 0 0 auto;border:0;padding:0;display:flex}.metrics{grid-template-columns:repeat(2,1fr)}.workspace{padding:22px}.toolbar{align-items:flex-start;gap:15px;flex-direction:column}.bind{width:100%}.bind input{width:auto;flex:1}}@media(max-width:520px){.glass-card{padding:28px 22px}.hero-copy h1{font-size:30px}.station-grid,.device-grid{grid-template-columns:1fr}.double,.triple{display:grid}.code-row{align-items:stretch}.brand.dark span{display:none}}.brand.dark{width:100%;justify-content:center;padding:8px;border-radius:14px;background:linear-gradient(145deg,#fff,#eaf2f5);box-shadow:0 8px 22px #00192355}.app-shell aside{padding:30px 22px;background:linear-gradient(180deg,#062d43,#0a4255 58%,#082f43);box-shadow:10px 0 35px #092d3f1a}.brand-stack{padding:4px 6px 24px;border-bottom:1px solid rgba(255,255,255,.12)}.brand.dark{justify-content:center}.brand.dark img{width:72px;height:48px;filter:drop-shadow(0 5px 12px rgba(0,0,0,.25))}.version-info{margin-top:10px;color:#9fc2cd}.app-shell aside nav{display:grid;gap:8px;margin-top:32px}.app-shell aside nav button{position:relative;margin:0;padding:15px 16px;border:1px solid transparent;font-size:15px;font-weight:700;transition:.2s ease}.app-shell aside nav button:hover{color:#fff;background:#ffffff14}.app-shell aside nav button.active{border-color:#74d6e140;background:linear-gradient(100deg,#1c97ad6b,#ffffff14);box-shadow:0 10px 24px #00141e2e}.app-shell aside nav button.active:before{content:"";position:absolute;left:-1px;top:11px;bottom:11px;width:3px;border-radius:4px;background:#58d4df}.workspace>header h1{margin:5px 0 0;color:#102f42;font-size:32px;letter-spacing:-.5px}.station-card,.device-card,.summary-panel,.detail-overview,.support-detail-section,.detail-base,.control-section,.curve-section{border-color:#dbe7eb;box-shadow:0 10px 30px #1b41520f}.station-card,.device-card{transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.station-card:hover,.device-card:hover{transform:translateY(-3px);border-color:#a8ccd5;box-shadow:0 16px 36px #19495b1c}.primary{background:linear-gradient(105deg,#08768e,#18a2b5);box-shadow:0 8px 20px #0d809738}.primary:hover{filter:brightness(1.04);transform:translateY(-1px)}.secondary{border:1px solid #cddde3;background:#f5f9fa}.notice.global{position:sticky;top:12px;z-index:8;box-shadow:0 8px 24px #782d2d1f}.detail-overview{order:1;position:relative;overflow:hidden;padding:28px 30px;background:linear-gradient(120deg,#fff,#f5fbfc)}.detail-overview:after{content:"";position:absolute;right:-70px;top:-90px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,rgba(27,163,181,.12),transparent 68%)}.detail-heading{position:relative;z-index:1}.detail-heading .device-symbol{display:grid;place-items:center;width:56px;height:56px;border-radius:16px;color:#fff;background:linear-gradient(145deg,#0c8199,#24b4bd);box-shadow:0 9px 22px #0e819940}.detail-overview .detail-grid{position:relative;z-index:1;margin-top:22px}.detail-item{border:1px solid #e1ebee;background:#ffffffdb}.detail-tabs{order:2!important;display:grid!important;grid-template-columns:repeat(3,1fr);gap:12px;margin:0!important;padding:0!important}.detail-tabs button{display:flex!important;align-items:center;gap:12px;width:100%;margin:0!important;padding:15px 18px!important;border:1px solid #d8e5e9!important;border-radius:13px!important;color:#54707d!important;text-align:left!important;background:#fff!important;box-shadow:0 6px 20px #1c45550b;transition:.2s ease}.detail-tabs button>span{display:grid;gap:3px;font-weight:800}.detail-tabs button small{color:#83959e;font-size:11px;font-weight:500}.detail-tabs button.active{border-color:#238ca2!important;color:#08738b!important;background:linear-gradient(120deg,#eef9fb,#fff)!important;box-shadow:0 9px 24px #127d951f}.detail-tabs button.active small{color:#4e8491}.section-title{padding-bottom:16px;border-bottom:1px solid #e5edef}.support-group.full{margin-top:16px;border:1px solid #dae7eb;border-radius:13px;background:#fbfdfe}.support-head{padding-bottom:12px;border-bottom:1px solid #e4ecef}.support-metrics span{border:1px solid #e2ecef;background:#f4f8f9}.actuator-card{border:1px solid #dce8ec!important;border-radius:12px!important;background:#fff!important;box-shadow:0 5px 18px #1b42520d}.control-card{box-shadow:0 7px 22px #1c45550d}.control-warning{border-radius:8px}.chart-card{box-shadow:0 5px 18px #1b42520b}@media(max-width:900px){.app-shell{grid-template-columns:1fr}.workspace{padding:24px 18px 50px}.detail-tabs{grid-template-columns:1fr}.detail-overview .detail-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.detail-overview,.support-detail-section,.detail-base,.control-section,.curve-section{padding:19px}.detail-overview .detail-grid{grid-template-columns:1fr}.detail-tabs button small{display:none}.workspace>header h1{font-size:27px}}.brand.dark img{width:168px;height:48px;object-fit:contain}.brand-stack{display:grid;gap:8px}.version-info{display:flex;justify-content:center;gap:10px;color:#8db1bf;font-size:10px;letter-spacing:.3px}.detail-heading{display:flex;align-items:center;gap:14px;margin:22px 0 26px;padding-bottom:22px;border-bottom:1px solid #e4ecef}.detail-heading h2{margin:0 0 5px;font-size:26px}.detail-heading p{margin:0}.device-symbol{display:grid;place-items:center;width:52px;height:52px;border-radius:15px;color:#fff;font-size:25px;background:linear-gradient(135deg,#f3a331,#e77725);box-shadow:0 8px 18px #e98a283d}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.detail-item{min-height:82px;padding:14px;border:1px solid #e1eaee;border-radius:12px;background:#f7fafb}.detail-item span{display:block;margin-bottom:8px;color:#718491;font-size:13px}.detail-item b{color:#17354a;font-size:18px}.detail-item b.ok{color:#168e68}.detail-item b.bad{color:#d04d56}.detail-item b.warn{color:#de8425}.base-info{margin-top:28px}.base-info h3{font-size:17px}.base-info dl{display:grid;grid-template-columns:110px 1fr;margin:0}.base-info dt,.base-info dd{padding:11px 0;border-bottom:1px solid #e8eef1}.base-info dt{color:#748793}.base-info dd{margin:0;text-align:right;font-weight:700;word-break:break-all}@media(max-width:900px){.brand.dark{width:auto;padding:4px 8px}.brand.dark img{width:130px;height:38px}}.device-kind{margin:3px 0 8px;color:#16829c;font-size:13px;font-weight:700}.time-text{margin:7px 0;color:#8a9aa4!important;font-size:12px}.device-data.expanded{grid-template-columns:repeat(5,1fr)}.device-data.expanded span{min-width:0}.drawer.wide{width:min(760px,96vw)}.actuator-section{margin-top:30px}.section-title{display:flex;align-items:center;justify-content:space-between}.section-title h3{margin:0}.section-title span{color:#81939d;font-size:12px}.actuator-empty{margin-top:14px;padding:22px;border:1px dashed #cbdbe2;border-radius:12px;color:#758993;text-align:center;background:#f7fafb}.support-group{margin-top:16px;padding:16px;border:1px solid #dfe9ed;border-radius:14px;background:#f8fbfc}.support-group h4{margin:0 0 12px;color:#176b80}.actuator-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.actuator-card{padding:15px;border:1px solid #e0e9ed;border-radius:11px;background:#fff}.actuator-card>div{display:flex;justify-content:space-between}.actuator-card .ok{color:#168e68}.actuator-card .bad{color:#d04d56}.actuator-card dl{display:grid;grid-template-columns:1fr 1fr;margin:12px 0 0}.actuator-card dt,.actuator-card dd{margin:0;padding:6px 0;border-bottom:1px solid #edf2f4}.actuator-card dt{color:#748793}.actuator-card dd{text-align:right;font-weight:700}.actuator-card p{margin:10px 0 0;color:#8797a0;font-size:11px}.header-actions{display:flex;justify-content:flex-end;gap:10px}.primary.muted{color:#0a7188;background:#fff;border:1px solid #9cc4ce;box-shadow:0 7px 17px #16465916}.station-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,430px),1fr))}.station-card.overview-card{grid-template-columns:48px minmax(0,1fr);min-width:0;width:100%}.station-summary-groups{grid-column:1/-1;display:grid;grid-template-columns:.8fr 1.4fr;min-width:0;gap:10px;padding-top:14px;border-top:1px solid #e8eef1}.summary-group{min-width:0;overflow:hidden;border:1px solid #dce8ed;border-radius:11px;background:#f7fafb}.summary-group h4{margin:0;padding:8px 11px;color:#fff;font-size:12px}.summary-group.collector h4{background:#247fa3}.summary-group.supports h4{background:#177d70}.summary-group>div{display:flex;justify-content:space-around;gap:5px;padding:10px 7px}.summary-group span{color:#768994;font-size:10px;text-align:center}.summary-group b{display:block;color:#17394c;font-size:18px}.summary-group.supports span:nth-child(2) b{color:#168e68}.summary-group.supports span:nth-child(3) b{color:#d9a029}.summary-group.supports span:nth-child(4) b{color:#d44c55}.station-links{grid-column:1/-1;display:flex;justify-content:space-between;gap:10px;padding-top:13px;border-top:1px solid #e8eef1}.station-links button{border:0;background:none;color:#087c98;font-weight:700}.device-grid{grid-template-columns:repeat(auto-fill,minmax(450px,1fr))}.device-actions{display:flex;gap:12px;white-space:nowrap}.status-line{gap:18px}.summary-panels{display:grid;grid-template-columns:.75fr 1.5fr;gap:16px;margin:22px 0}.summary-panel{overflow:hidden;border:1px solid #dce6eb;border-radius:15px;background:#fff;box-shadow:0 7px 24px #183c5010}.summary-panel h3{margin:0;padding:11px 18px;color:#fff;font-size:15px}.collector-panel h3{background:linear-gradient(100deg,#217a9e,#349dc0)}.support-panel h3{background:linear-gradient(100deg,#147b6b,#25a686)}.summary-panel>div{display:grid;grid-template-columns:repeat(2,1fr)}.support-panel>div{grid-template-columns:repeat(4,1fr)}.summary-panel span{padding:16px 18px;color:#738792}.summary-panel b{display:block;margin-top:4px;color:#17394c;font-size:27px}.rename-card{max-width:440px}.status-line>div{display:flex;align-items:center;gap:7px}.signal-inline{margin-left:22px;padding-left:22px;border-left:1px solid #d9e5e9;color:#6b7f8b}.signal-inline b{color:#17394c;font-size:17px}.device-data.status-tags{grid-template-columns:repeat(4,1fr);gap:8px}.device-data.status-tags span{color:#fff;padding:11px}.device-data.status-tags b{color:#fff}.tag-total{background:linear-gradient(135deg,#247ba0,#369bc0)!important}.tag-normal{background:linear-gradient(135deg,#17976d,#2ab889)!important}.tag-offline{background:linear-gradient(135deg,#dca52c,#f1be45)!important}.tag-deviation{background:linear-gradient(135deg,#d64f57,#ed6a68)!important}.full-detail-page{display:grid;gap:22px}.detail-overview,.support-detail-section,.detail-base{padding:26px;border:1px solid #dce7eb;border-radius:17px;background:#fff}.detail-overview .detail-grid{grid-template-columns:repeat(5,1fr)}.support-detail-section .section-title h2{margin:4px 0 0}.support-group.full{padding:20px}.support-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.support-head>div{display:flex;align-items:center;gap:12px}.support-head h3{margin:0}.support-head small{color:#7c909a}.state-ok,.state-bad{padding:5px 10px;border-radius:20px;font-size:12px;font-weight:700}.state-ok{color:#12815e;background:#dff5ec}.state-bad{color:#bc424a;background:#fde6e7}.support-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:16px}.support-metrics span{padding:11px;border-radius:9px;color:#718590;font-size:12px;background:#edf4f6}.support-metrics b{display:block;margin-top:5px;color:#17384c;font-size:16px}.actuator-grid.full{grid-template-columns:repeat(4,1fr)}.detail-base dl{grid-template-columns:130px 1fr;max-width:760px}.control-section{padding:26px;border:1px solid #cfdfe5;border-radius:17px;background:linear-gradient(145deg,#fff,#f5fafb)}.control-section .section-title{display:flex;align-items:center;justify-content:space-between}.control-section h2{margin:4px 0}.control-online,.control-offline{padding:7px 12px;border-radius:20px;font-size:13px;font-weight:700}.control-online{color:#117d5b;background:#ddf5eb}.control-offline{color:#b84149;background:#fde5e7}.control-warning{padding:11px 14px;border-left:4px solid #ef9d32;color:#78551f;background:#fff7e9}.control-columns{display:grid;grid-template-columns:1.55fr 1fr;gap:18px}.control-card{padding:18px;border:1px solid #dce8ec;border-radius:13px;background:#fff}.control-card h3{margin:0 0 16px}.control-group{margin-bottom:17px}.control-group h4{margin:0 0 8px;color:#287489;font-size:14px}.control-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.control-fields.single{grid-template-columns:1fr 1fr}.control-fields label{margin:0}.control-fields label span{display:block;min-height:23px;color:#526c79;font-size:12px}.control-fields code{color:#17809a}.control-fields input,.control-fields select{width:100%;padding:10px;border:1px solid #cedbe3;border-radius:8px;background:#fff}.control-card button{margin-top:17px}.control-result{display:grid;gap:4px;margin-top:16px;padding:13px 15px;border-radius:10px}.control-result.success{color:#126d51;background:#dff5eb}.control-result.failure{color:#ae353e;background:#fde6e8}.control-result span,.control-result small{font-size:12px}.curve-section{padding:26px;border:1px solid #d6e4e9;border-radius:17px;background:#fff}.curve-section .section-title{display:flex;align-items:center;justify-content:space-between;gap:20px}.curve-section h2,.curve-section h3{margin:4px 0}.curve-section p{margin:5px 0;color:#718590}.curve-filter{display:flex;align-items:center;gap:9px}.curve-filter input{width:auto}.curve-actuators{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.curve-actuators button{padding:8px 12px;border:1px solid #cbdde4;border-radius:20px;color:#32687a;background:#f4f9fa}.curve-actuators button.active{border-color:#137f98;color:#fff;background:#137f98}.curve-empty{padding:35px;text-align:center;color:#7b8f99;background:#f5f9fa;border-radius:10px}.curve-meta{display:flex;gap:24px;margin:14px 0;color:#607783;font-size:13px}.chart-card{margin-top:14px;padding:16px;border:1px solid #dfebee;border-radius:12px;background:#fbfdfe}.chart-title{display:flex;align-items:center;justify-content:space-between}.chart-legend{display:flex;gap:17px;font-size:12px}.chart-legend span:before{content:"";display:inline-block;width:17px;height:3px;margin:0 6px 3px 0}.chart-legend .target:before{background:#e29432}.chart-legend .real:before{background:#1683a0}.chart-legend .tilt:before{background:#7b62c5}.chart-legend .current:before{background:#1b9a70}.chart-wrap{position:relative;height:280px;margin-top:8px}.chart-wrap svg{width:100%;height:100%;overflow:visible}.chart-wrap line{stroke:#b9cbd2;stroke-width:1}.chart-wrap polyline{fill:none;stroke-width:2.5;vector-effect:non-scaling-stroke}.target-line{stroke:#e29432}.real-line{stroke:#1683a0}.tilt-line{stroke:#7b62c5}.current-line{stroke:#1b9a70}.axis-max,.axis-min{position:absolute;left:0;color:#748893;font-size:11px}.axis-max{top:25px}.axis-min{bottom:27px}.section-filter{display:flex;align-items:end;gap:12px;margin-bottom:24px;padding:18px;border:1px solid #dce6eb;border-radius:14px;background:#fff}.section-filter label{margin:0}.section-filter select{min-width:240px;padding:12px;border:1px solid #cedbe3;border-radius:9px;background:#fff}.monitor-list{display:grid;gap:10px}.monitor-row{display:grid;grid-template-columns:1.6fr 1.4fr .7fr .7fr .6fr auto;align-items:center;gap:16px;padding:17px 20px;border:1px solid #dce6eb;border-radius:13px;background:#fff;cursor:pointer}.monitor-row:hover{border-color:#8dbdca;box-shadow:0 8px 25px #183c5012}.monitor-row>div{display:flex;align-items:center;gap:8px}.monitor-row small{color:#778b96}.monitor-row button{border:0;background:none;color:#087c98;font-weight:700}.report-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:22px}.report-cards article{padding:22px;border:1px solid #dce6eb;border-radius:15px;background:#fff}.report-cards span{color:#71838e}.report-cards b{display:block;margin:8px 0;font-size:34px}.report-cards p{margin:0;color:#81929c}.progress{height:7px;overflow:hidden;border-radius:8px;background:#e8f0f3}.progress i{display:block;height:100%;border-radius:inherit;background:#159a75}.progress.orangebar i{background:#e59a37}.report-table{overflow:auto;padding:22px;border:1px solid #dce6eb;border-radius:15px;background:#fff}.report-table h2{margin-top:0}.report-table table{width:100%;min-width:950px;border-collapse:collapse}.report-table th,.report-table td{padding:13px 12px;border-bottom:1px solid #e8eef1;text-align:left}.report-table th{color:#6c808c;font-size:13px;background:#f6f9fa}.profile-grid{display:grid;grid-template-columns:minmax(280px,.7fr) 1.3fr;gap:20px}.profile-grid article{padding:30px;border:1px solid #dce6eb;border-radius:17px;background:#fff}.avatar{display:grid;place-items:center;width:72px;height:72px;border-radius:22px;color:#fff;font-size:30px;font-weight:800;background:linear-gradient(135deg,#08738b,#19a3ac)}.security-row{display:flex;justify-content:space-between;padding:18px 0;border-bottom:1px solid #e8eef1}.security-row b{color:#168e68}.profile-note{padding:14px;border-radius:9px;color:#647985;background:#f3f7f8}@media(max-width:1100px){.station-grid{grid-template-columns:1fr}.station-summary-groups{grid-template-columns:.8fr 1.4fr}.monitor-row{grid-template-columns:1.5fr 1fr .6fr .6fr}.monitor-row>span:nth-of-type(2),.monitor-row>span:nth-of-type(3){display:none}.report-cards{grid-template-columns:1fr}.detail-overview .detail-grid{grid-template-columns:repeat(3,1fr)}.support-metrics,.actuator-grid.full{grid-template-columns:repeat(2,1fr)}.control-columns{grid-template-columns:1fr}}@media(max-width:700px){.section-filter{align-items:stretch;flex-direction:column}.section-filter select{width:100%;min-width:0}.monitor-row{grid-template-columns:1fr auto}.monitor-row>.mono,.monitor-row>span:not(:last-of-type){display:none}.profile-grid{grid-template-columns:1fr}.device-data.expanded{grid-template-columns:repeat(2,1fr)}.actuator-grid{grid-template-columns:1fr}.header-actions{flex-wrap:wrap}.device-data.status-tags{grid-template-columns:repeat(2,1fr)}.detail-overview .detail-grid,.support-metrics,.actuator-grid.full,.control-fields,.control-fields.single{grid-template-columns:1fr}.signal-inline{margin-left:10px;padding-left:10px}.curve-section .section-title,.chart-title{align-items:flex-start;flex-direction:column}.curve-meta{flex-direction:column;gap:4px}.chart-wrap{height:220px}.station-card.overview-card{min-width:0}.station-summary-groups,.device-grid,.summary-panels{grid-template-columns:1fr}.status-line{align-items:flex-start;flex-direction:column}.device-actions{align-self:flex-end}}.app-shell{grid-template-columns:260px minmax(0,1fr);background:#f2f6f8}.app-shell aside{padding:30px 22px;background:linear-gradient(180deg,#062d43,#0a4255 58%,#082f43)}.workspace{max-width:1700px;width:100%;padding:34px clamp(24px,4vw,68px) 70px}.workspace>header{margin-bottom:24px;padding-bottom:18px;border-bottom:1px solid #dce6ea}.full-detail-page{display:grid;gap:20px}.detail-overview{order:1}.detail-tabs{order:2!important}.curve-section,.control-section,.support-detail-section{order:3}.detail-base{order:4}.tab-curve .support-detail-section,.tab-curve .detail-base,.tab-control .support-detail-section,.tab-control .detail-base{display:none}@media(max-width:900px){.app-shell{grid-template-columns:1fr}.workspace{padding:24px 18px 50px}.detail-tabs{grid-template-columns:1fr}}.parameter-state{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:16px 0;padding:13px 15px;border:1px solid #d7e5e9;border-radius:10px;color:#496b78;background:#f4f9fa}.parameter-state.loading{color:#176f84;background:#edf8fa}.parameter-state.success{border-color:#bde3d5;color:#167657;background:#eaf8f2}.parameter-state.error{border-color:#f0d4b0;color:#94601c;background:#fff7e9}.parameter-state button{padding:8px 13px}.legacy-curve{display:none!important}.state-overview-section,.support-curves-section{order:3;padding:26px;border:1px solid #dbe7eb;border-radius:17px;background:#fff;box-shadow:0 10px 30px #1b41520f}.state-overview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:13px;margin-top:18px}.state-overview-card{padding:17px;border:1px solid #dce8ec;border-radius:12px;background:linear-gradient(145deg,#fff,#f7fafb)}.state-overview-card header{display:flex;align-items:center;justify-content:space-between;padding-bottom:11px;border-bottom:1px solid #e5edef}.weather-icon{font-size:25px;letter-spacing:2px}.state-overview-card>div{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}.state-overview-card>div span{color:#758892;font-size:12px}.state-overview-card strong{display:block;margin-top:5px;color:#193b4d;font-size:14px}.state-overview-card p{margin:12px 0 0;padding:9px 10px;border-radius:8px;font-size:13px;font-weight:800}.sync-ok{color:#147b59;background:#e3f6ee}.sync-fault{color:#c43d47;background:#fde7e8}.support-chart-list{display:grid;gap:17px;margin-top:18px}.actuator-chart{padding:18px;border:1px solid #dce8ec;border-radius:13px;background:#fbfdfe;box-shadow:0 6px 20px #1b42520d}.actuator-chart .chart-title>div:first-child{display:flex;align-items:baseline;gap:10px}.actuator-chart small{color:#7d919b}.dual-axis .axis-max.right,.dual-axis .axis-min.right{left:auto;right:0;color:#16845f}.dual-axis .axis-max.left,.dual-axis .axis-min.left{left:0}.support-curves-section .section-title{display:flex;align-items:center;justify-content:space-between}.support-curves-section .curve-actuators{margin-bottom:12px}@media(max-width:700px){.state-overview-card>div{grid-template-columns:1fr}.support-curves-section .section-title{align-items:flex-start;flex-direction:column}.chart-legend{flex-wrap:wrap}}.weather-inline{display:inline-flex;align-items:center;min-height:28px;padding:2px 7px;border:1px solid #dce8ec;border-radius:16px;font-size:19px;line-height:1;background:#f5fafb;cursor:help}.sync-text-ok{color:#14805d!important}.sync-text-fault{color:#d03e49!important}.support-metrics b{line-height:1.35}.actuator-card dd{max-width:65%;text-align:right}.support-metrics .solar-time-metric{grid-column:span 2}.switch-on{color:#14805d!important}.switch-off{color:#758892!important}@media(max-width:700px){.support-metrics .solar-time-metric{grid-column:span 1}}.support-title-actions,.support-head-actions{display:flex;align-items:center;gap:13px}.support-expand-all{padding:9px 15px}.support-toggle{padding:7px 12px;border:1px solid #cfe0e5;border-radius:8px;color:#08748b;font-weight:700;background:#f1f8fa}.support-toggle:hover{border-color:#8fc5d0;background:#e7f5f7}.support-collapsed{display:flex;flex-wrap:wrap;gap:10px;padding-top:2px}.support-collapsed span{display:flex;align-items:center;gap:12px;min-width:145px;padding:10px 13px;border:1px solid #dce8ec;border-radius:9px;background:#f3f8f9}.support-collapsed small{color:#708590}.support-collapsed b{color:#173b4d;font-size:17px}.support-collapsed em{color:#84959d;font-style:normal}.support-collapsed .support-summary-item{border-color:#cfe2e7;background:#edf7f8}.support-collapsed .angle-summary-item{border-color:#d9deee;background:#f3f2fb}.monitor-list-title{margin:28px 0 14px}.monitor-list-title h2{margin:0;color:#14374a;font-size:24px}@media(max-width:700px){.support-title-actions,.support-head-actions{align-items:flex-end;flex-direction:column}.support-head{align-items:flex-start}.support-collapsed span{flex:1 1 130px}}.device-card{position:relative;cursor:pointer}.device-card .detail-btn:before{content:"";position:absolute;inset:0;z-index:1}.device-card .device-actions,.device-card .device-actions button{position:relative;z-index:3}.device-card:hover .detail-btn{color:#086d85}.device-card:hover .detail-btn:after{content:"  进入"}.control-modal{z-index:30;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#051e2b9e}.control-dialog{width:min(560px,94vw);padding:34px;border:1px solid rgba(255,255,255,.8);border-radius:22px;box-shadow:0 28px 80px #02192559;animation:dialog-in .22s ease-out}.control-dialog .dialog-icon{display:grid;place-items:center;width:58px;height:58px;margin-bottom:17px;border-radius:18px;font-size:29px;font-weight:900}.dialog-icon.warning{color:#a46408;background:#fff1d4}.dialog-icon.success{color:#fff;background:linear-gradient(145deg,#15966c,#28b887);box-shadow:0 9px 22px #15966c40}.dialog-icon.failure{color:#fff;background:linear-gradient(145deg,#d24750,#ee686b);box-shadow:0 9px 22px #ca394240}.control-dialog h2{margin:5px 0 10px;color:#14374a;font-size:28px}.dialog-sub,.result-main{color:#536e7b;font-size:15px;line-height:1.65}.command-device{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:17px 0;padding:12px 14px;border-radius:9px;color:#657d88;background:#f1f6f8}.command-device code{color:#173b4d;font-weight:800}.command-params{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-height:210px;overflow:auto;margin:15px 0}.command-params>div{padding:11px;border:1px solid #dce8ec;border-radius:9px;background:#f8fbfc}.command-params span{display:block;color:#70848e;font-size:11px}.command-params b{display:block;margin-top:4px;color:#163a4c;font-size:17px}.dialog-warning,.result-note{padding:13px 14px;border-radius:9px;line-height:1.6}.dialog-warning{border-left:4px solid #e8a132;color:#81591d;background:#fff7e8}.result-note{color:#416875;background:#eef7f8}.result-note strong{display:block;margin-top:6px;color:#08748b}.control-dialog .actions{margin-top:24px}.control-dialog .actions .primary{width:auto}.result-dialog.success{border-top:4px solid #1aa477}.result-dialog.failure{border-top:4px solid #dc5058}@keyframes dialog-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}@media(max-width:520px){.control-dialog{padding:25px 20px}.command-params{grid-template-columns:repeat(2,1fr)}}.sim-service-banner{display:flex;align-items:center;gap:18px;padding:14px 20px;border-radius:14px;border:1px solid;margin-bottom:16px;box-shadow:0 0 24px #0000002e}.sim-service-banner b{font-size:17px;letter-spacing:.04em}.sim-service-banner span{font-size:14px}.sim-service-banner.expiring{color:#ffe65c;background:#714f0085;border-color:#ffdb3b9e}.sim-service-banner.expired{color:#ff7185;background:#6b0a1d94;border-color:#ff4c6bb8;text-shadow:0 0 12px rgba(255,56,91,.55)}.sim-card-panel{margin-top:18px;padding:22px;border:1px solid rgba(63,200,255,.28);border-radius:18px;background:linear-gradient(145deg,#07274cdb,#051937e6);box-shadow:inset 0 1px #ffffff0d,0 18px 42px #0008193d}.sim-card-panel .section-title{margin-bottom:16px}.sim-state{padding:7px 12px;border-radius:999px;font-weight:800}.sim-state.normal{color:#5dffd0;background:#0080613d}.sim-state.expiring{color:#ffe65c;background:#8e5e0047}.sim-state.expired{color:#ff7185;background:#8f0f2752}.sim-state.unknown{color:#b8cce8;background:#5b708f38}.sim-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.sim-card-grid span{display:flex;flex-direction:column;gap:7px;padding:14px;border-radius:12px;background:#11487b66;border:1px solid rgba(85,194,255,.16)}.sim-card-grid small{color:#8fbbe2}.sim-card-grid b{color:#f0f9ff;word-break:break-all}.sim-sync-waiting{position:relative;display:flex;align-items:center;gap:20px;min-height:108px;padding:20px 22px;overflow:hidden;border:1px solid rgba(74,205,255,.34);border-radius:15px;background:linear-gradient(115deg,#093f71b8,#062349c7);box-shadow:inset 0 1px #ffffff0f,0 12px 32px #000a2333}.sim-sync-waiting:after{content:"";position:absolute;right:-60px;top:-90px;width:230px;height:230px;border-radius:50%;background:radial-gradient(circle,rgba(42,194,255,.17),transparent 68%);pointer-events:none}.sim-sync-icon{position:relative;flex:0 0 62px;width:62px;height:62px;border:1px solid rgba(86,217,255,.4);border-radius:18px;background:linear-gradient(145deg,#1f92d74d,#08417973);box-shadow:0 0 24px #1fbeff2e}.sim-sync-icon i{position:absolute;left:16px;bottom:15px;width:7px;border-radius:6px 6px 2px 2px;background:#59dcff;box-shadow:0 0 10px #59dcffbf;animation:sim-signal 1.4s ease-in-out infinite}.sim-sync-icon i:nth-child(1){height:12px}.sim-sync-icon i:nth-child(2){left:28px;height:22px;animation-delay:.16s}.sim-sync-icon i:nth-child(3){left:40px;height:32px;animation-delay:.32s}.sim-sync-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:6px}.sim-sync-copy strong{color:#ecfbff;font-size:17px;letter-spacing:.03em;text-shadow:0 0 14px rgba(71,210,255,.22)}.sim-sync-copy span{color:#a9cae7;line-height:1.55}.sim-sync-copy small{color:#66dcff;font-weight:700}.sim-sync-badge{z-index:1;display:flex;align-items:center;gap:8px;flex:0 0 auto;padding:8px 13px;border:1px solid rgba(87,217,255,.35);border-radius:999px;color:#99eaff;background:#0a5b8e61;font-size:13px;font-weight:800}.sim-sync-badge i{width:8px;height:8px;border-radius:50%;background:#58ddff;box-shadow:0 0 0 5px #58ddff1f,0 0 12px #58ddff;animation:sim-pulse 1.5s ease-in-out infinite}@keyframes sim-signal{0%,to{opacity:.38;transform:scaleY(.82)}50%{opacity:1;transform:scaleY(1)}}@keyframes sim-pulse{50%{opacity:.45;transform:scale(.78)}}.sim-renewal-preview{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-top:18px;padding-top:16px;border-top:1px solid rgba(96,183,239,.2)}.sim-renewal-preview label{display:flex;flex-direction:column;gap:6px;color:#a9cbea}.sim-renewal-preview select{min-width:180px}.sim-renewal-preview p{flex-basis:100%;margin:0;color:#8eacd0;font-size:13px}.sim-expiry-dialog{max-width:720px!important}.sim-expiry-dialog ul{list-style:none;padding:0;margin:16px 0;display:grid;gap:9px;max-height:300px;overflow:auto}.sim-expiry-dialog li{display:grid;grid-template-columns:1fr 1.4fr auto;gap:12px;align-items:center;padding:11px 13px;border-radius:10px;background:#0a2a50b8}.sim-expiry-dialog li span{font-family:monospace;color:#b9d7f4}.sim-expiry-dialog li strong.expired{color:#ff7185}.sim-expiry-dialog li strong.expiring{color:#ffe65c}@media(max-width:900px){.sim-card-grid{grid-template-columns:1fr 1fr}.sim-expiry-dialog li{grid-template-columns:1fr}.sim-renewal-preview{align-items:stretch}.sim-sync-waiting{align-items:flex-start;flex-wrap:wrap}.sim-sync-copy{flex-basis:calc(100% - 82px)}.sim-sync-badge{margin-left:82px}}.smart-filter{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:0 0 20px;padding:16px 18px;border:1px solid rgba(66,199,232,.34);border-radius:15px;background:linear-gradient(135deg,#073352f0,#084b64e0);box-shadow:0 12px 30px #02233a29,inset 0 1px #ffffff14}.smart-filter .filter-heading{display:flex;flex-direction:column;gap:4px;min-width:145px;margin-right:auto}.filter-heading b{color:#f2fbff;font-size:16px}.filter-heading span{color:#8bc9df;font-size:12px}.smart-filter label{display:flex;flex-direction:column;gap:6px;margin:0;color:#a9d7e8;font-size:12px}.smart-filter input,.smart-filter select{min-width:165px;height:40px;padding:0 12px;border:1px solid rgba(95,207,235,.36);border-radius:9px;color:#eafaff;background:#082d47;outline:0}.smart-filter input::placeholder{color:#75a6ba}.smart-filter input:focus,.smart-filter select:focus{border-color:#4ce5ff;box-shadow:0 0 0 3px #4ce5ff1f}.filter-search{position:relative;color:#69dff5!important;font-size:20px!important}.filter-search input{min-width:230px;padding-left:32px;font-size:13px}.filter-reset{height:40px;padding:0 14px;border:1px solid rgba(91,218,239,.42);border-radius:9px;color:#74eaff;background:#076f8952;cursor:pointer}.filter-reset:hover{color:#fff;background:#1093b080}.filter-empty{margin:12px 0 20px;padding:25px;text-align:center;border:1px dashed rgba(89,185,211,.42);border-radius:13px;color:#83b9cc;background:#07364f52}.subarray-filter{margin-top:20px}.support-filter{order:3;margin-bottom:0}.support-filter+.support-detail-section{order:3}@media(max-width:700px){.smart-filter{align-items:stretch;flex-direction:column}.smart-filter .filter-heading{margin-right:0}.smart-filter input,.smart-filter select,.filter-search input,.filter-reset{width:100%;min-width:0}}.app-shell input[type=date]{cursor:pointer}.app-shell input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;filter:invert(82%) sepia(40%) saturate(1050%) hue-rotate(159deg) brightness(105%)}.app-shell .curve-actuators{gap:10px}.app-shell .curve-actuators button{padding:9px 16px;border:1px solid rgba(70,161,226,.48);border-radius:20px;color:#a8cbe6;background:linear-gradient(145deg,#09366cd6,#06234ec7);box-shadow:inset 0 1px #ffffff0f;font-weight:700;transition:.2s ease}.app-shell .curve-actuators button:hover{color:#e8faff;border-color:#52cdec;background:#0a5b8f9e;box-shadow:0 0 14px #2dccee24}.app-shell .curve-actuators button.active{color:#fff;border-color:#50dcf5;background:linear-gradient(120deg,#0788b6,#16b9cf);box-shadow:inset 0 1px #ffffff29,0 0 18px #22ceee47;text-shadow:0 1px 5px rgba(0,40,75,.45)}.app-shell .curve-empty{position:relative;overflow:hidden;padding:38px;border:1px solid rgba(65,161,233,.38);border-radius:13px;color:#a9cbe5;background:linear-gradient(145deg,#072e60c2,#051e46ad);box-shadow:inset 0 1px #ffffff0d,0 9px 26px #000a2638;font-weight:700}.app-shell .curve-empty:before{content:"";display:inline-block;width:9px;height:9px;margin-right:11px;border-radius:50%;background:#43dcf2;box-shadow:0 0 0 5px #43dcf21a,0 0 15px #43dcf29e;animation:curvePulse 1.4s ease-in-out infinite;vertical-align:1px}.app-shell .curve-empty:after{content:"";position:absolute;left:15%;right:15%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(62,208,243,.55),transparent)}@keyframes curvePulse{50%{opacity:.35;transform:scale(.72)}}.auth-side{background:radial-gradient(circle at 80% 15%,#125b78 0,transparent 35%),linear-gradient(145deg,#06283e,#0b4557)}.auth-page{background:radial-gradient(circle at 18% 17%,rgba(23,100,123,.68) 0,transparent 35%),linear-gradient(145deg,#06283e,#0b4557)}.auth-page .brand-panel,.auth-page .auth-side{background:transparent}.solar-art{right:10%;bottom:-8px;width:600px;height:430px;opacity:.88;pointer-events:none}.tracker-illustration{display:block;width:100%;height:100%;overflow:visible}.new-sun{animation:sunPulse 4s ease-in-out infinite}.dual-axis-tracker{transform-origin:302px 217px}.tracker-ground{stroke:#70a8c9;stroke-opacity:.28;transform:translate(150px)}@keyframes sunPulse{50%{opacity:.68}}@keyframes sun-track{0%{left:22px;top:92px;background:#d88627;filter:brightness(.68)}20%{filter:brightness(.88)}50%{left:193px;top:0;background:#ffd05a;filter:brightness(1.16)}80%{filter:brightness(.88)}to{left:364px;top:92px;background:#d88627;filter:brightness(.68)}}@keyframes panel-track{0%{transform:rotate(-18deg)}50%{transform:rotate(0)}to{transform:rotate(18deg)}}@keyframes ground-shadow{0%{transform:translate(-30%) skew(34deg) scaleX(.72);opacity:.32}50%{transform:translate(-50%) skew(0) scaleX(.48);opacity:.58}to{transform:translate(-70%) skew(-34deg) scaleX(.72);opacity:.32}}.app-shell{color:#dcefff;background:radial-gradient(circle at 72% 8%,rgba(17,96,211,.48),transparent 30%),radial-gradient(circle at 20% 75%,rgba(0,185,224,.15),transparent 34%),linear-gradient(145deg,#03152f,#06285c 55%,#031b42);background-attachment:fixed}.app-shell aside{background:linear-gradient(180deg,#04193efa,#053067f5);border-right:1px solid rgba(51,156,255,.35);box-shadow:12px 0 40px #000a236b}.app-shell .brand-stack{padding:5px 0 22px}.app-shell .brand.dark{width:100%;min-height:78px;padding:8px 7px;border:1px solid rgba(94,218,255,.48);border-radius:14px;background:linear-gradient(145deg,#fffffffa,#e0f6fff0);box-shadow:inset 0 1px #fff,0 0 0 1px #1c9ce814,0 10px 28px #00092357,0 0 22px #2ac5ff1f}.app-shell .brand.dark img{display:block;width:206px;height:66px;object-fit:contain;filter:saturate(1.18) contrast(1.12) drop-shadow(0 2px 3px rgba(26,47,104,.2))}.app-shell .workspace>header{border-color:#5eadff40}.app-shell .workspace>header h1,.app-shell h2,.app-shell h3,.app-shell h4,.app-shell strong{color:#f1f8ff}.app-shell p,.app-shell small,.app-shell dt,.app-shell .mono,.app-shell .time-text{color:#8fb4d8}.app-shell .eyebrow{color:#4bc9ff}.app-shell .station-card,.app-shell .device-card,.app-shell .summary-panel,.app-shell .detail-overview,.app-shell .support-detail-section,.app-shell .detail-base,.app-shell .control-section,.app-shell .curve-section,.app-shell .monitor-row,.app-shell .report-table,.app-shell .report-cards article,.app-shell .profile-grid article,.app-shell .state-overview-section,.app-shell .support-curves-section{border:1px solid rgba(59,151,255,.36);background:linear-gradient(145deg,#082f65c7,#061d48a8);box-shadow:inset 0 1px #ffffff14,0 14px 34px #0008204d;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}.app-shell .station-card:hover,.app-shell .device-card:hover,.app-shell .monitor-row:hover{border-color:#48bfff;box-shadow:0 0 0 1px #45beff33,0 18px 42px #00123780}.app-shell .detail-item,.app-shell .support-metrics span,.app-shell .support-collapsed span,.app-shell .actuator-card,.app-shell .state-overview-card,.app-shell .chart-card,.app-shell .actuator-chart,.app-shell .control-card,.app-shell .parameter-state,.app-shell .device-data span{border-color:#4d9eeb47!important;background:#0b366c94!important}.app-shell .control-fields label>span{color:#b9ddff!important;font-size:13px!important;font-weight:700!important;letter-spacing:.02em;text-shadow:0 0 10px rgba(67,190,255,.22)}.app-shell .field-unit{display:inline-flex;margin-left:8px;padding:1px 7px;border:1px solid rgba(53,214,255,.3);border-radius:9px;color:#58e5ff;font-size:11px;font-weight:700;line-height:17px;background:#00b7e61a;box-shadow:inset 0 0 8px #24ccff14}.app-shell .detail-item span,.app-shell .support-metrics span,.app-shell .support-collapsed small,.app-shell .device-data span,.app-shell .actuator-card dt{color:#89add0}.app-shell .detail-item b,.app-shell .support-metrics b,.app-shell .support-collapsed b,.app-shell .device-data b,.app-shell .actuator-card dd{color:#f0f8ff}.app-shell .support-group.full{border-color:#3c97f159;background:#041c4685}.app-shell .support-head,.app-shell .section-title{border-color:#5ba5eb38}.app-shell input,.app-shell textarea,.app-shell select{color:#eaf6ff;border-color:#52a3ee6b;background:#041b42cc}.app-shell input::placeholder,.app-shell textarea::placeholder{color:#769abb}.app-shell .device-zrp>.support-curves-section:not(.zrp-curves){display:none}.app-shell .device-zrd>.zrd-curves:not(.zrd-split-curves){display:none}.app-shell .zrd-axis-chart-list{display:grid;gap:18px}.app-shell .control-card select{appearance:none;padding-right:42px;border-color:#49b5f494;background-color:#031e49f5;background-image:linear-gradient(45deg,transparent 50%,#69dcff 50%),linear-gradient(135deg,#69dcff 50%,transparent 50%),linear-gradient(to right,#47b5ef47,#47b5ef47);background-position:calc(100% - 18px) calc(50% - 2px),calc(100% - 12px) calc(50% - 2px),calc(100% - 38px) 50%;background-size:6px 6px,6px 6px,1px 58%;background-repeat:no-repeat;box-shadow:inset 0 1px #ffffff0f;cursor:pointer}.app-shell .control-card select:hover{border-color:#43c7f4;box-shadow:0 0 0 2px #2cbef01a,inset 0 1px #ffffff14}.app-shell .control-card select:focus{outline:none;border-color:#55dcff;box-shadow:0 0 0 3px #28c2ef29,0 0 16px #29beee1f}.app-shell .control-card select option{color:#eaf6ff;background:#123766}.app-shell .secondary,.app-shell .support-toggle{color:#b9e7ff;border-color:#4cadeb6b;background:#0e497fb3}.app-shell .primary{background:linear-gradient(105deg,#087fc5,#18b7d4);box-shadow:0 8px 24px #0091da47}.app-shell table{color:#cce7ff}.app-shell th{color:#9dcbf4;background:#0c4080b8}.app-shell td{border-color:#4f97dd33}.app-shell .report-table{padding:20px;border-radius:16px;overflow:auto}.app-shell .modal-card,.app-shell .control-dialog{color:#dcedff;border:1px solid rgba(78,167,246,.45);background:linear-gradient(145deg,#082f64f7,#051941f7)}.app-shell .control-dialog h2{color:#f2f9ff}.app-shell .command-device,.app-shell .command-params>div,.app-shell .result-note{color:#a8c9e6;background:#0d4177b3}.app-shell .control-dialog .eyebrow{color:#52dcff!important;font-weight:800;letter-spacing:.2em;text-shadow:0 0 12px rgba(45,211,255,.38)}.app-shell .control-dialog .dialog-sub,.app-shell .control-dialog .result-main{color:#c8e5ff!important}.app-shell .control-dialog .dialog-sub b{color:#fff!important;text-shadow:0 0 9px rgba(91,207,255,.38)}.app-shell .control-dialog .command-device{border:1px solid rgba(71,173,255,.26);color:#b9ddfa!important;background:#073065c7!important}.app-shell .control-dialog .command-device code{color:#65eaff!important;font-weight:900;text-shadow:0 0 10px rgba(49,222,255,.42)}.app-shell .control-dialog .command-params>div{border-color:#5bb7ff94!important;background:#114c89b8!important;box-shadow:inset 0 0 14px #1a80da1a}.app-shell .control-dialog .command-params span{color:#a9d5f8!important;font-size:12px}.app-shell .control-dialog .command-params b{color:#55e7ff!important;font-weight:900;text-shadow:0 0 9px rgba(43,216,255,.38)}.app-shell .control-dialog .dialog-warning{border:1px solid rgba(255,190,73,.72);border-left:4px solid #ffb52e;color:#684714!important;background:#fff3dc!important;box-shadow:0 7px 20px #00112f38}.summary-panels{grid-template-columns:minmax(330px,.8fr) minmax(520px,1.5fr)}.summary-panel{overflow:hidden}.summary-panel h3{padding:13px 18px;color:#dff6ff!important;border-bottom:1px solid rgba(84,176,255,.28);background:linear-gradient(90deg,#127ec2c7,#1058ab57)!important}.support-panel h3{background:linear-gradient(90deg,#0c938fb8,#115faf52)!important}.summary-panel .summary-chart-body{display:flex;align-items:center;gap:24px;padding:18px 24px}.summary-pie{position:relative;flex:0 0 112px;width:112px;height:112px;border-radius:50%;box-shadow:0 0 25px #1cbdff2e}.summary-pie:after{content:"";position:absolute;inset:17px;border:1px solid rgba(113,196,255,.28);border-radius:50%;background:#092a5a}.summary-pie i{position:absolute;inset:0;z-index:1;display:grid;place-content:center;text-align:center;font-style:normal}.summary-pie i b{color:#fff;font-size:26px;line-height:1}.summary-pie i small{margin-top:5px;color:#83b5dc;font-size:11px}.summary-legend{display:grid;grid-template-columns:repeat(2,minmax(90px,1fr));gap:10px;flex:1}.summary-legend.support-legend{grid-template-columns:repeat(2,minmax(100px,1fr))}.summary-legend span{position:relative;padding:8px 10px 8px 22px!important;color:#9fc1df!important;border:1px solid rgba(83,158,228,.2);border-radius:9px;background:#092e5e7a}.summary-legend span:before{content:"";position:absolute;left:9px;top:16px;width:7px;height:7px;border-radius:50%;background:#5c92bf}.summary-legend .legend-online:before,.summary-legend .legend-normal:before{background:#20d49b}.summary-legend .legend-offline:before{background:#f2b534}.summary-legend .legend-deviation:before{background:#f05a67}.summary-legend b{margin-top:2px!important;color:#fff!important;font-size:22px!important}@media(max-width:900px){.summary-panels{grid-template-columns:1fr}.summary-panel .summary-chart-body{align-items:flex-start}.summary-legend{width:100%}}@media(max-width:520px){.summary-panel .summary-chart-body{flex-direction:column}.summary-legend{grid-template-columns:1fr 1fr}}.app-shell .station-summary-groups{border-color:#57aaf64d}.app-shell .summary-group{border-color:#419df261;background:#072754b3}.app-shell .summary-group h4{color:#eaf7ff;background:linear-gradient(90deg,#1384c4d1,#1253a485)}.app-shell .summary-group.supports h4{background:linear-gradient(90deg,#0f9385cc,#1253a47a)}.station-summary-chart{display:flex!important;align-items:center;justify-content:flex-start!important;gap:10px;padding:10px!important;min-width:0}.station-mini-pie{position:relative;flex:0 0 54px;width:54px;height:54px;border-radius:50%;box-shadow:0 0 16px #1ebeff2e}.station-mini-pie:after{content:"";position:absolute;inset:9px;border-radius:50%;background:#092a5a}.station-mini-pie i{position:absolute;inset:0;z-index:1;display:grid;place-items:center;color:#fff;font-size:17px;font-style:normal;font-weight:800}.station-counts{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;min-width:0;flex:1;padding:0!important}.station-counts.support-counts{grid-template-columns:repeat(4,minmax(0,1fr))}.app-shell .station-counts span{min-width:0;color:#a9c9e4}.app-shell .station-counts b{color:#fff}.app-shell .station-counts span:nth-child(2) b{color:#2be0aa}.app-shell .station-counts.support-counts span:nth-child(3) b{color:#f2bd43}.app-shell .station-counts.support-counts span:nth-child(4) b{color:#ff6572}.app-shell .section-filter{border-color:#48a4f666;background:linear-gradient(145deg,#083064d6,#051d48c7);box-shadow:inset 0 1px #ffffff14,0 12px 28px #000a2647}.app-shell .section-filter label{color:#d7eeff;font-weight:800}.app-shell .section-filter select{color:#fff;border-color:#419edf;background:#0b3b79}.app-shell .section-filter .secondary{color:#fff;border:1px solid #53b9eb;background:#176ca8}.app-shell .header-actions .primary{color:#fff;border:1px solid rgba(111,219,255,.68);text-shadow:0 1px 2px rgba(0,20,50,.45)}.app-shell .header-actions .primary.muted{color:#e7f7ff!important;border-color:#50b9ed!important;background:linear-gradient(110deg,#087db6,#13a9c9)!important;box-shadow:0 8px 20px #0076bb47}.app-shell .header-actions .primary:disabled{color:#aac7dc!important;border-color:#3d759d!important;background:#245479!important;opacity:.72}.app-shell .signal-inline{color:#b9d9f2;border-left-color:#75bef680;font-weight:700}.app-shell .signal-inline b{color:#66e3ff;font-size:18px;text-shadow:0 0 12px rgba(58,211,255,.35)}@media(max-width:600px){.station-summary-chart{align-items:flex-start;flex-direction:column}.station-counts.support-counts{grid-template-columns:repeat(2,1fr)}}.app-shell .detail-tabs button{color:#9bc8e9!important;border-color:#439deb66!important;background:linear-gradient(135deg,#082f63e6,#051d49d1)!important;box-shadow:inset 0 1px #ffffff12,0 9px 25px #00092647}.app-shell .detail-tabs button small{color:#729dc3!important}.app-shell .detail-tabs button:hover{color:#dff8ff!important;border-color:#37cbffb8!important;background:linear-gradient(135deg,#094884f0,#05285ae6)!important}.app-shell .detail-tabs button.active{color:#62e5ff!important;border-color:#31c6f4!important;background:linear-gradient(120deg,#0770a7f0,#083270e6)!important;box-shadow:inset 0 0 24px #30cfff21,0 0 0 1px #3fdcff1f,0 10px 28px #006bb84d}.app-shell .detail-tabs button.active small{color:#b2e7f7!important}.app-shell .profile-note{color:#a9d6f4!important;border:1px solid rgba(56,177,240,.36);background:linear-gradient(100deg,#0a4984b8,#072a5b94);box-shadow:inset 3px 0 #2bd5ef,0 8px 22px #000e2d33}.app-shell .control-warning{color:#ffd99a!important;border:1px solid rgba(255,174,65,.4)!important;border-left:4px solid #ffb347!important;background:linear-gradient(100deg,#6a43136b,#072a5ba3)!important;box-shadow:inset 0 0 18px #ffac360d,0 8px 22px #000e2d33;text-shadow:0 1px 8px rgba(255,180,74,.12)}.app-shell .green,.app-shell .detail-item b.ok,.app-shell .actuator-card .ok,.app-shell .support-metrics .ok,.app-shell .support-metrics .sync-text-ok,.app-shell .support-metrics .switch-on,.app-shell .security-row b{color:#45ffc0!important;font-weight:800;text-shadow:0 0 9px rgba(38,255,184,.48)}.app-shell .state-ok,.app-shell .sync-ok,.app-shell .control-online{color:#5dffd0!important;border:1px solid rgba(64,255,195,.45);background:#08725b57!important;box-shadow:inset 0 0 13px #2fffbe14,0 0 10px #1ee9ad1a;text-shadow:0 0 8px rgba(46,255,190,.32)}.app-shell .dot.online{background:#42ffc0;box-shadow:0 0 0 4px #42ffc026,0 0 13px #42ffc0b3}.app-shell .red,.app-shell .detail-item b.bad,.app-shell .actuator-card .bad,.app-shell .support-metrics .sync-text-fault{color:#ff6078!important;font-weight:800;text-shadow:0 0 9px rgba(255,55,86,.58)}.app-shell .state-bad,.app-shell .control-offline{color:#ff7185!important;border:1px solid rgba(255,85,112,.5);background:#8e133457!important;box-shadow:inset 0 0 13px #ff3a5b17,0 0 11px #ff2d4f1f;text-shadow:0 0 8px rgba(255,51,84,.42)}.app-shell .header-device-title{display:flex;align-items:center;gap:15px;margin-top:7px}.app-shell .header-device-title .device-symbol{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;border-radius:14px;color:#fff;background:linear-gradient(145deg,#078db5,#24c9cf);box-shadow:0 0 22px #26d7ef40}.app-shell .header-device-title h1{margin:0!important}.app-shell .header-device-title p{margin:4px 0 0;color:#91b9da}.app-shell .detail-overview .detail-grid{margin-top:0}.app-shell .device-name-row{display:flex;align-items:center;gap:13px}.app-shell .weather-inline,.app-shell .header-weather{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:5px 10px;border:1px solid rgba(72,201,255,.52);border-radius:18px;color:#fff;background:linear-gradient(135deg,#095391d6,#082e67d1);box-shadow:inset 0 1px #ffffff1f,0 0 15px #27bff229;font-size:18px;line-height:1;letter-spacing:2px;cursor:help;filter:saturate(1.12)}.app-shell .header-weather{min-height:36px;padding:6px 11px;font-size:20px}.app-shell .weather-inline:hover,.app-shell .header-weather:hover{border-color:#68e3ff;box-shadow:inset 0 1px #ffffff29,0 0 18px #37d5ff4d}.app-shell .subarray-title{margin:0;padding:0 0 15px;border-bottom:1px solid rgba(83,168,240,.28)}.app-shell .subarray-live{display:flex;align-items:center;gap:0;margin:16px 0;padding:11px 15px;width:max-content;border:1px solid rgba(57,166,236,.38);border-radius:11px;background:linear-gradient(110deg,#083f77b8,#06275894);box-shadow:inset 0 1px #ffffff0d}.app-shell .subarray-live>span{display:flex;align-items:center;gap:9px}.app-shell .subarray-live .dot{display:inline-block;margin:0}.app-shell .subarray-live .signal-inline{margin-left:18px;padding-left:18px}.app-shell .subarray-overview .detail-grid{grid-template-columns:repeat(5,1fr)}.app-shell .detail-support-summary{margin-top:16px;overflow:hidden;border:1px solid rgba(62,159,241,.38);border-radius:13px;background:#0727548f}.app-shell .detail-support-summary h3{margin:0;padding:11px 17px;border-bottom:1px solid rgba(84,176,255,.28);background:linear-gradient(90deg,#0f9385cc,#1253a47a)}.app-shell .detail-support-summary .summary-chart-body{display:flex;align-items:center;gap:24px;padding:18px 24px}.app-shell .detail-support-summary .summary-legend{grid-template-columns:repeat(2,minmax(120px,1fr))}@media(max-width:900px){.app-shell .subarray-overview .detail-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.app-shell .subarray-live{width:100%}.app-shell .detail-support-summary .summary-chart-body{align-items:flex-start;flex-direction:column}.app-shell .detail-support-summary .summary-legend{width:100%;grid-template-columns:1fr 1fr}}.app-shell .weather-realtime{margin-top:16px;padding:18px;border:1px solid rgba(57,178,242,.38);border-radius:14px;background:linear-gradient(135deg,#083970b8,#05224fa8);box-shadow:inset 0 1px #ffffff0f}.app-shell .weather-title{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-bottom:13px;border-bottom:1px solid rgba(78,172,242,.25)}.app-shell .weather-title h3{margin:3px 0 0;color:#effaff;font-size:19px}.app-shell .weather-title .eyebrow{margin:0;color:#53dffc}.app-shell .weather-query{display:flex;align-items:center;gap:9px}.app-shell .weather-query input{width:auto;color:#dcefff;border-color:#4aabf17a;background:#042553b8}.app-shell .weather-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:15px}.app-shell .weather-metrics>span{display:grid;grid-template-columns:42px 1fr;grid-template-rows:auto auto;column-gap:10px;padding:14px;border:1px solid rgba(65,163,235,.3);border-radius:11px;background:#0b3f7794}.app-shell .weather-metrics i{grid-row:1/3;align-self:center;font-size:27px;font-style:normal;filter:drop-shadow(0 0 8px rgba(65,214,255,.3))}.app-shell .weather-metrics small{color:#9bc7e8}.app-shell .weather-metrics b{color:#55ebff;font-size:19px;text-shadow:0 0 10px rgba(51,218,255,.25)}.app-shell .weather-metrics em{color:#a8cde8;font-size:12px;font-style:normal}.app-shell .weather-chart-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}.app-shell .weather-chart{padding:14px;border:1px solid rgba(71,166,238,.32);border-radius:11px;background:#052654a6}.app-shell .weather-chart header{display:flex;align-items:center;justify-content:space-between}.app-shell .weather-chart h4{margin:0;color:#e8f7ff}.app-shell .weather-chart header span{color:#8fc6e8;font-size:11px}.app-shell .weather-chart .chart-wrap{height:190px}.app-shell .weather-wind{stroke:#48dcff}.app-shell .weather-irra{stroke:#ffd45a}.app-shell .weather-rain{stroke:#b28cff}.app-shell .weather-chart polyline{fill:none;stroke-width:2.5;vector-effect:non-scaling-stroke}@media(max-width:900px){.app-shell .weather-chart-grid{grid-template-columns:1fr}.app-shell .weather-metrics{grid-template-columns:1fr 1fr}.app-shell .weather-title{align-items:flex-start;flex-direction:column}}@media(max-width:520px){.app-shell .weather-metrics{grid-template-columns:1fr}.app-shell .weather-query{width:100%;flex-direction:column;align-items:stretch}.app-shell .weather-query input{width:100%}}.app-shell .zrd-card{overflow:hidden;background:linear-gradient(145deg,#083770c7,#061f4bbf)!important}.app-shell .zrd-axis-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.app-shell .zrd-axis-grid>section{overflow:hidden;border:1px solid rgba(66,173,244,.38);border-radius:12px;background:#062b5dad}.app-shell .zrd-axis-grid header{display:flex;align-items:center;justify-content:space-between;padding:11px 15px;border-bottom:1px solid rgba(67,169,239,.25);background:linear-gradient(90deg,#0a8bb559,#19529e33)}.app-shell .zrd-axis-grid header span{color:#f0faff;font-weight:800}.app-shell .zrd-axis-grid header b{color:#52dcf7;font-size:11px;letter-spacing:.14em}.app-shell .zrd-axis-grid section>div{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:13px}.app-shell .zrd-axis-grid section>div span,.app-shell .zrd-extra>span{padding:11px;border:1px solid rgba(64,155,226,.25);border-radius:9px;color:#9fc8e6;font-size:12px;background:#0c41787a}.app-shell .zrd-axis-grid section>div b,.app-shell .zrd-extra b{display:block;margin-top:5px;color:#ecf8ff;font-size:17px}.app-shell .zrd-extra{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:13px}.app-shell .zrd-curves .current-line{stroke:#e45fc5}.app-shell .zrd-curves .chart-legend .current:before{background:#e45fc5}.app-shell .zrd-limit-overview{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin:17px 0}.app-shell .zrd-limit-overview>span{padding:14px;border:1px solid rgba(71,177,246,.35);border-radius:11px;color:#9bc8e8;background:linear-gradient(145deg,#0a4b86a1,#0831688f)}.app-shell .zrd-limit-overview b{display:block;margin:5px 0;color:#5ceaff;font-size:21px;text-shadow:0 0 10px rgba(53,218,255,.28)}.app-shell .zrd-limit-overview small{color:#86b2d3}@media(max-width:800px){.app-shell .zrd-axis-grid{grid-template-columns:1fr}.app-shell .zrd-extra,.app-shell .zrd-limit-overview{grid-template-columns:1fr 1fr}}@media(max-width:520px){.app-shell .zrd-axis-grid section>div,.app-shell .zrd-extra,.app-shell .zrd-limit-overview{grid-template-columns:1fr}}.app-shell .report-table .report-total{color:#55dcff;font-weight:800;text-shadow:0 0 9px rgba(54,209,255,.48)}.app-shell .report-table .report-offline{color:#ffd34f;font-weight:800;text-shadow:0 0 9px rgba(255,202,48,.48)}.app-shell .report-table .report-deviation{color:#ff6078;font-weight:800;text-shadow:0 0 9px rgba(255,55,86,.58)}.app-shell .summary-pie i b,.app-shell .station-mini-pie i,.app-shell .summary-legend .legend-total b,.app-shell .station-counts span:first-child b,.app-shell .device-data .tag-total b{color:#55dcff!important;text-shadow:0 0 9px rgba(54,209,255,.48)}.app-shell .summary-legend .legend-online b,.app-shell .summary-legend .legend-normal b,.app-shell .station-counts span:nth-child(2) b,.app-shell .station-counts.support-counts span:nth-child(2) b,.app-shell .device-data .tag-normal b{color:#45ffc0!important;text-shadow:0 0 9px rgba(38,255,184,.48)}.app-shell .summary-legend .legend-offline b,.app-shell .station-counts.support-counts span:nth-child(3) b,.app-shell .device-data .tag-offline b{color:#ffd34f!important;text-shadow:0 0 9px rgba(255,202,48,.48)}.app-shell .summary-legend .legend-deviation b,.app-shell .station-counts.support-counts span:nth-child(4) b,.app-shell .device-data .tag-deviation b{color:#ff6078!important;text-shadow:0 0 9px rgba(255,55,86,.58)}.app-shell .summary-legend>span{display:flex;align-items:center;gap:12px}.app-shell .summary-legend>span b{margin:0!important;line-height:1}.app-shell .signal-meter{--signal-color:#66829e;position:relative;display:inline-block;flex:0 0 45px;width:45px;height:20px;color:#3d6080;font-size:18px;font-style:normal;font-weight:900;line-height:20px;letter-spacing:1px;vertical-align:middle}.app-shell .signal-meter:before,.app-shell .signal-meter:after{content:"▂▄▆█";position:absolute;inset:0;white-space:nowrap}.app-shell .signal-meter:after{width:calc(var(--level) * 25%);overflow:hidden;color:var(--signal-color);text-shadow:0 0 8px color-mix(in srgb,var(--signal-color) 58%,transparent)}.app-shell .signal-meter.level-0{--signal-color:#ff6078}.app-shell .signal-meter.level-1{--signal-color:#ff8b4d}.app-shell .signal-meter.level-2{--signal-color:#ffd34f}.app-shell .signal-value{display:inline-flex!important;align-items:center;justify-content:flex-end;gap:7px}.app-shell .signal-inline .signal-meter{margin-left:2px}.app-shell .signal-meter.level-0{--signal-color:#66829e}.app-shell .signal-meter.level-1{--signal-color:#ff6078}.app-shell .signal-meter.level-2{--signal-color:#ffad4d}.app-shell .signal-meter.level-3{--signal-color:#55dcff}.app-shell .signal-meter.level-4{--signal-color:#45ffc0}.app-shell .signal-value{gap:16px!important}.app-shell .signal-number{display:inline-block;min-width:62px;color:#66e3ff;font-weight:800;white-space:nowrap;text-align:left;text-shadow:0 0 10px rgba(58,211,255,.28)}.app-shell .signal-inline{font-size:0}.app-shell .signal-inline>b{display:none}.app-shell .signal-value{font-size:0!important}.app-shell .support-metrics span:has(.signal-value){font-size:0}.app-shell .support-metrics span:has(.signal-value){font-size:12px}.app-shell .support-metrics .signal-value{font-size:16px!important}.app-shell .message-modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:24px;background:#010a1fb3;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.app-shell .message-dialog{position:relative;display:grid;grid-template-columns:54px minmax(0,1fr) auto;align-items:center;gap:18px;width:min(600px,100%);padding:28px 30px;border:1px solid rgba(66,187,255,.52);border-radius:18px;background:linear-gradient(145deg,#083570fa,#051b45fa);box-shadow:inset 0 1px #ffffff1a,0 28px 75px #0005198c,0 0 32px #1ba5eb21}.app-shell .message-icon{display:grid;place-items:center;width:54px;height:54px;border:1px solid rgba(255,185,79,.58);border-radius:16px;color:#ffd26d;background:#975c0c47;box-shadow:0 0 18px #ffb03629;font-size:28px;font-weight:900}.app-shell .message-dialog small{color:#55d9ff;font-size:10px;font-weight:800;letter-spacing:2px}.app-shell .message-dialog h2{margin:3px 0 6px;font-size:23px}.app-shell .message-dialog p{margin:0;color:#c4ddf1;font-size:16px;line-height:1.65}.app-shell .message-dialog .primary{width:auto;min-width:104px}.app-shell .message-close{position:absolute;right:12px;top:9px;padding:2px 7px;border:0;color:#8eb6d4;background:transparent;font-size:24px}.app-shell .message-close:hover{color:#fff}@media(max-width:600px){.app-shell .message-dialog{grid-template-columns:46px 1fr;padding:25px 22px}.app-shell .message-icon{width:46px;height:46px}.app-shell .message-dialog .primary{grid-column:1/-1;width:100%}}.app-shell .signal-meter{--cut:100%;position:relative;display:inline-block;flex:0 0 44px;width:44px;height:30px;border:1px solid rgba(95,175,226,.32);border-radius:9px;background:linear-gradient(145deg,#08396ce0,#05214ccc);box-shadow:inset 0 1px #ffffff12,0 5px 14px #000a2338;vertical-align:middle}.app-shell .signal-meter:before,.app-shell .signal-meter:after{content:"";position:absolute;left:7px;top:4px;width:30px;height:20px;background:linear-gradient(currentColor 0 0) 0 15px/5px 5px no-repeat,linear-gradient(currentColor 0 0) 8px 11px/5px 9px no-repeat,linear-gradient(currentColor 0 0) 16px 6px/5px 14px no-repeat,linear-gradient(currentColor 0 0) 24px 1px/5px 19px no-repeat}.app-shell .signal-meter:before{color:#315b7d;opacity:.75}.app-shell .signal-meter:after{color:var(--signal-color);clip-path:inset(0 var(--cut) 0 0);filter:drop-shadow(0 0 4px var(--signal-color))}.app-shell .signal-meter.level-0{--cut:100%}.app-shell .signal-meter.level-1{--cut:75%}.app-shell .signal-meter.level-2{--cut:50%}.app-shell .signal-meter.level-3{--cut:25%}.app-shell .signal-meter.level-4{--cut:0%}.app-shell .signal-meter:hover{border-color:var(--signal-color);box-shadow:inset 0 1px #ffffff1a,0 0 14px color-mix(in srgb,var(--signal-color) 28%,transparent)}.app-shell .station-card.overview-card:after{content:"查看电站及子阵详情  →  进入";grid-column:1/-1;margin-top:2px;padding:14px 3px 1px;border-top:1px solid rgba(93,176,239,.32);color:#24d5e8;font-size:14px;font-weight:800;letter-spacing:.2px;text-shadow:0 0 10px rgba(36,213,232,.22);transition:color .2s ease,text-shadow .2s ease}.app-shell .station-card.overview-card:hover:after{color:#72efff;text-shadow:0 0 14px rgba(71,225,255,.42)}.app-shell .modal{background:#000518d6;-webkit-backdrop-filter:blur(9px) brightness(.58);backdrop-filter:blur(9px) brightness(.58)}.app-shell .modal-card{border:1px solid rgba(80,207,255,.76)!important;background:radial-gradient(circle at 88% 5%,rgba(27,149,214,.2),transparent 32%),linear-gradient(145deg,#0d4889fc,#062356fc)!important;box-shadow:inset 0 1px #ffffff24,0 0 0 1px #2ab2f71f,0 30px 85px #000314b8,0 0 38px #27b9f533!important}.app-shell .modal-card input,.app-shell .modal-card textarea,.app-shell .modal-card select{border-color:#56b4f385;background:#031b45c7}.app-shell .modal-card input:focus,.app-shell .modal-card textarea:focus,.app-shell .modal-card select:focus{border-color:#54d9ff;box-shadow:0 0 0 3px #34c8f526,0 0 16px #34c8f524}.app-shell .device-card .device-actions{gap:20px}.app-shell .device-card .device-actions .link{padding:7px 10px;border:1px solid rgba(46,196,236,.36);border-radius:8px;color:#38d3eb;background:#075b8b38;font-size:14px;font-weight:800;letter-spacing:.3px;text-shadow:0 0 9px rgba(36,202,231,.24);transition:.2s ease}.app-shell .device-card .device-actions .link:hover{color:#8cf4ff;border-color:#55dcff;background:#1083b559;box-shadow:0 0 14px #2ecff129}.app-shell .device-card .device-actions .danger{margin-left:0;color:#ff667b;border-color:#ff5b7366;background:#8b173638;text-shadow:0 0 9px rgba(255,65,94,.3)}.app-shell .device-card .device-actions .danger:hover{color:#ff9cac;border-color:#ff7185;background:#a61b3e57;box-shadow:0 0 14px #ff48652e}.app-shell .zrd-extra+.zrd-axis-grid{margin-top:13px}.app-shell .zrd-axis-grid section>div{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:520px){.app-shell .zrd-axis-grid section>div{grid-template-columns:1fr}}.app-shell .zrd-extra>span.zrd-signal{display:flex;align-items:center;gap:24px}.app-shell .zrd-extra .zrd-signal>.signal-value{display:inline-flex!important;align-items:center;justify-content:flex-start;gap:12px;margin:0;font-size:16px!important;white-space:nowrap}.app-shell .zrd-extra .zrd-signal .signal-number{display:inline!important;padding:0;border:0;color:#ecf8ff;background:none;font-size:16px;font-weight:800}.app-shell .support-metrics>span.battery-state-card{overflow:visible}.app-shell .battery-state-tags{display:flex!important;flex-wrap:wrap;gap:7px;margin-top:8px!important}.app-shell .battery-state-tags>i{padding:4px 8px;border:1px solid;border-radius:7px;font-size:12px;font-style:normal;font-weight:800;line-height:1.2;white-space:nowrap}.app-shell .battery-state-tags>.is-on,.app-shell .battery-state-tags>.is-normal{color:#55ffc1;border-color:#38ffb38c;background:#16916938;box-shadow:0 0 9px #32ffb421}.app-shell .battery-state-tags>.is-off{color:#a9c7dc;border-color:#7bb1d657;background:#365b813b}.app-shell .battery-state-tags>.is-fault{color:#ff6078;border-color:#ff526e94;background:#a71c3a40;box-shadow:0 0 9px #ff37562e}.app-shell .parameter-state{min-height:68px;padding:14px 18px!important;border-width:1px!important;border-style:solid!important;border-radius:12px!important;box-shadow:inset 0 1px #ffffff12,0 8px 22px #000c2a3d}.app-shell .parameter-state>span{display:flex;align-items:center;gap:11px;color:#d8ecfb;font-size:16px;font-weight:800;letter-spacing:.15px}.app-shell .parameter-state>span:before{content:"";flex:0 0 10px;width:10px;height:10px;border-radius:50%;background:#8ab3ce;box-shadow:0 0 10px currentColor}.app-shell .parameter-state.success{border-color:#34ffb89e!important;background:linear-gradient(100deg,#0d705b85,#073065b3)!important;box-shadow:inset 0 1px #ffffff14,0 0 20px #2bffb51a}.app-shell .parameter-state.success>span{color:#59ffc2;text-shadow:0 0 11px rgba(43,255,181,.3)}.app-shell .parameter-state.success>span:before{background:#48ffb9}.app-shell .parameter-state.loading{border-color:#49d3ff94!important;background:linear-gradient(100deg,#0a679080,#073065b3)!important}.app-shell .parameter-state.loading>span{color:#64e7ff}.app-shell .parameter-state.loading>span:before{background:#52dcff;animation:parameterPulse 1s ease-in-out infinite}.app-shell .parameter-state.error{border-color:#ffb5489e!important;background:linear-gradient(100deg,#7d4c107a,#073065b3)!important}.app-shell .parameter-state.error>span{color:#ffd06b}.app-shell .parameter-state.error>span:before{background:#ffbd4a}.app-shell .parameter-state .secondary{margin:0;padding:10px 17px;border:1px solid rgba(79,211,255,.65);border-radius:9px;color:#e9faff;background:linear-gradient(135deg,#127eb5b3,#105197bf);box-shadow:0 0 14px #2fc9ff1f;font-weight:800}.app-shell .parameter-state .secondary:hover:not(:disabled){border-color:#69e5ff;background:linear-gradient(135deg,#189aced9,#1467b1e0);box-shadow:0 0 18px #39d3ff38}@keyframes parameterPulse{50%{opacity:.38;transform:scale(.72)}}.app-shell .support-metrics>span:has(>.signal-value){display:flex;align-items:center;justify-content:flex-start;gap:24px}.app-shell .support-metrics>span:has(>.signal-value)>.signal-value{justify-content:flex-start;margin:0;gap:12px}.app-shell .parameter-loading-modal{position:fixed;inset:0;z-index:130;display:grid;place-items:center;padding:24px;background:#00071bc2;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.app-shell .parameter-loading-dialog{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:22px;width:min(520px,100%);padding:30px 34px;border:1px solid rgba(73,214,255,.68);border-radius:18px;background:radial-gradient(circle at 12% 18%,rgba(25,174,222,.16),transparent 35%),linear-gradient(145deg,#083a77fc,#051d49fc);box-shadow:inset 0 1px #ffffff1f,0 30px 80px #000418b3,0 0 36px #2ccaff29}.app-shell .parameter-loading-spinner{width:58px;height:58px;border:5px solid rgba(74,185,230,.24);border-top-color:#55e5ff;border-right-color:#4affba;border-radius:50%;filter:drop-shadow(0 0 8px rgba(70,220,255,.4));animation:parameterSpin .85s linear infinite}.app-shell .parameter-loading-dialog small{color:#5df;font-size:10px;font-weight:800;letter-spacing:1.8px}.app-shell .parameter-loading-dialog h2{margin:5px 0 7px;color:#f1fbff;font-size:23px}.app-shell .parameter-loading-dialog p{margin:0;color:#b8d8ee;font-size:15px}@keyframes parameterSpin{to{transform:rotate(360deg)}}@media(max-width:520px){.app-shell .parameter-loading-dialog{grid-template-columns:1fr;justify-items:center;text-align:center;padding:28px 22px}}.language-picker{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin:0 0 14px;color:#294c62;font-size:13px}.language-switch{display:inline-flex;padding:3px;border:1px solid rgba(44,148,184,.42);border-radius:10px;background:#e2f3f9c7;box-shadow:inset 0 1px 4px #053a531a}.language-switch button{min-width:72px;padding:7px 12px;border:0;border-radius:7px;color:#456b7d;background:transparent;font-size:13px;font-weight:800;transition:.2s ease}.language-switch button:hover{color:#096f8b;background:#ffffffb3}.language-switch button.active{color:#fff;background:linear-gradient(120deg,#0789aa,#19b3c7);box-shadow:0 4px 12px #057e9c47}.profile-language select{width:auto;min-width:130px;padding:8px 30px 8px 10px;border:1px solid rgba(44,148,184,.4);border-radius:8px;color:#173e57;background:#ffffffd1}.profile-language{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:22px;padding-top:18px;border-top:1px solid rgba(73,160,221,.28);color:#b9d9f2}.app-shell .profile-language select{color:#e6f7ff;background:#063060db}.account-danger-zone{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-top:24px;padding:18px;border:1px solid rgba(255,92,113,.45);border-radius:14px;background:#740f272e}.account-danger-zone b{color:#ff91a2}.account-danger-zone p{margin:5px 0 0;color:#b9cde1}.danger-button{border:1px solid rgba(255,100,122,.8);border-radius:10px;padding:10px 18px;background:linear-gradient(135deg,#c6294d,#8e1735);color:#fff;font-weight:800;cursor:pointer;box-shadow:0 0 18px #ff355a33}.danger-button:disabled{opacity:.55;cursor:not-allowed}.account-delete-dialog{max-width:620px}.account-delete-dialog ul{margin:12px 0 20px;padding-left:22px;color:#d9e8f7;line-height:1.9}.deletion-code-row{display:grid;grid-template-columns:1fr auto;gap:12px}.account-delete-dialog select{width:100%}.auth-page{position:relative;padding-bottom:74px}.workspace{display:flex;flex-direction:column}.workspace-legal-footer{margin-top:auto;padding-top:26px}.legal-footer{display:flex;align-items:center;justify-content:center;gap:10px 16px;flex-wrap:wrap;width:100%;color:#8fb7d1;font-size:12px;line-height:1.7;text-align:center}.auth-legal-footer{position:absolute;z-index:5;left:0;right:0;bottom:16px;padding:0 18px;color:#b4d1e3;text-shadow:0 1px 3px #00152f}.legal-links{display:inline-flex;align-items:center;gap:10px}.legal-footer a{color:#71dff4;text-decoration:none;transition:color .2s,text-shadow .2s}.legal-footer a:hover,.legal-footer a:focus-visible{color:#d8fbff;text-decoration:underline;text-underline-offset:3px;text-shadow:0 0 9px rgba(67,225,255,.5)}.legal-footer i{color:#537f9d;font-style:normal}@media(max-width:720px){.auth-page{padding-bottom:104px}.auth-legal-footer{bottom:10px}.legal-footer{gap:3px 10px;font-size:11px}.legal-footer>span:first-child{width:100%}}.app-boot-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 38%,rgba(17,122,204,.25),transparent 35%),linear-gradient(145deg,#031633,#06366b)}.app-boot-card{display:grid;justify-items:center;gap:14px;color:#dff8ff;text-align:center}.app-boot-card img{width:min(180px,55vw);height:auto;filter:drop-shadow(0 0 18px rgba(69,214,255,.22))}.app-boot-spinner{width:48px;height:48px;border:4px solid rgba(65,197,242,.22);border-top-color:#54e5ff;border-right-color:#43f2b1;border-radius:50%;filter:drop-shadow(0 0 8px rgba(69,222,255,.35));animation:parameterSpin .85s linear infinite}.app-boot-card strong{font-size:20px;letter-spacing:.5px}.app-boot-card span{color:#9fcde7;font-size:14px}.station-delete-dialog{max-width:620px}.station-delete-dialog ul{margin:14px 0 20px;padding-left:22px;color:#d9e8f7;line-height:1.9}.station-delete-dialog .dialog-warning{padding:13px 15px;border:1px solid rgba(255,104,125,.45);border-radius:10px;color:#ffb0bd;background:#85142f33}@media(max-width:900px){.app-shell .brand-stack{padding:0;border:0}.app-shell .brand.dark{width:auto;min-height:50px;padding:5px 7px}.app-shell .brand.dark img{width:158px;height:46px}}.unbind-modal{z-index:40;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#011224c2}.unbind-dialog{width:min(520px,92vw);padding:34px;border:1px solid rgba(91,205,255,.34);border-radius:22px;background:linear-gradient(145deg,#082f57,#061e3e);box-shadow:0 28px 90px #00051499,inset 0 1px #ffffff0f;animation:dialog-in .22s ease-out}.unbind-icon{display:grid;place-items:center;width:60px;height:60px;margin-bottom:17px;border:1px solid rgba(255,116,134,.35);border-radius:18px;color:#ff8a9c;background:linear-gradient(145deg,#c4264352,#6d11286b);box-shadow:0 0 24px #ff426729;font-size:34px;font-weight:900}.unbind-dialog .eyebrow{margin:0;color:#66dfff}.unbind-dialog h2{margin:5px 0 9px;color:#f1fbff;font-size:29px}.unbind-intro{margin:0 0 19px;color:#a7c8e1}.unbind-device{display:grid;grid-template-columns:1fr 1.25fr;gap:10px;padding:13px;border:1px solid rgba(85,190,239,.22);border-radius:13px;background:#0a43746b}.unbind-device>div{min-width:0;padding:7px 9px}.unbind-device small{display:block;margin-bottom:6px;color:#81acce}.unbind-device strong,.unbind-device code{display:block;overflow:hidden;color:#f2fbff;font-size:15px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.unbind-device code{color:#73e2ff}.unbind-warning{display:flex;gap:13px;margin-top:15px;padding:13px 15px;border-left:4px solid #ffb448;border-radius:9px;color:#d5b780;background:#92560833;line-height:1.55}.unbind-warning b{flex:0 0 auto;color:#ffc561}.unbind-dialog .actions{margin-top:24px}.unbind-dialog .secondary{border-color:#70c4ea59;color:#b8def2;background:#0e48735c}.unbind-confirm{min-width:130px;background:linear-gradient(135deg,#e04458,#ff6d70);box-shadow:0 9px 24px #dc32483b}.unbind-confirm:disabled{opacity:.6}@media(max-width:520px){.unbind-dialog{padding:26px 20px}.unbind-device{grid-template-columns:1fr}}
