#app,body,html{height:100%;margin:0;background:#060d1f;color:#dce9ff;font-family:Microsoft YaHei,PingFang SC,sans-serif;overflow:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:rgba(0,212,255,.25);border-radius:3px}.screen-layout{display:flex;flex-direction:column;height:100%}.screen-layout .top{height:56px;flex:none;display:flex;align-items:center;gap:12px;padding:0 18px;border-bottom:1px solid rgba(0,212,255,.18);background:rgba(7,11,29,.8)}.screen-layout .top .brand{display:flex;align-items:center;gap:10px;min-width:0}.screen-layout .top .brand .logo{width:38px;height:38px;border-radius:50%;flex:none;-o-object-fit:contain;object-fit:contain;display:block;background:#000}.screen-layout .top .brand .brand-txt{min-width:0}.screen-layout .top .brand .brand-txt b{display:block;font-size:15px;background:linear-gradient(90deg,#fff,#00d4ff);-webkit-background-clip:text;background-clip:text;color:transparent;letter-spacing:.5px;white-space:nowrap}.screen-layout .top .brand .brand-txt span{display:block;margin-top:1px;font-size:10px;color:#7d92b8;white-space:nowrap}.screen-layout .top .top-right{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.screen-layout .top .top-right .sel .el-input__inner,.screen-layout .top .top-right .sel.el-input .el-input__inner{background:#0d1430;border:1px solid rgba(0,212,255,.18);color:#dce9ff;font-size:12px}.screen-layout .top .top-right .chip{padding:3px 11px;border-radius:14px;border:1px solid rgba(0,212,255,.18);color:#7d92b8;font-size:11px;cursor:pointer;background:rgba(0,212,255,.04);transition:.15s;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.screen-layout .top .top-right .chip b{color:#dce9ff;font-weight:400;margin:0 2px}.screen-layout .top .top-right .chip:hover{color:#fff;border-color:#00d4ff}.screen-layout .top .top-right .chip.active{color:#00d4ff;border-color:rgba(0,212,255,.6);background:rgba(0,212,255,.08)}.screen-layout .top .top-right .chip.rep{color:#00d4ff;border-color:rgba(0,212,255,.4)}.screen-layout .top .top-right .alertbtn{position:relative;flex:none;width:28px;height:28px;border-radius:50%;background:rgba(255,77,109,.14);border:1px solid rgba(255,77,109,.5);color:#ff6b81;display:flex;align-items:center;justify-content:center;cursor:pointer;font-weight:800;font-size:14px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.screen-layout .top .top-right .alertbtn:hover{background:rgba(255,77,109,.28);box-shadow:0 0 12px rgba(255,77,109,.35)}.screen-layout .top .top-right .alertbtn em{position:absolute;top:-5px;right:-7px;background:#ff4d6d;color:#fff;font-size:9px;border-radius:8px;padding:0 5px;font-style:normal;line-height:14px}.screen-layout .top .top-right .user-name{color:#7d92b8;font-size:12px;white-space:nowrap}.screen-layout .top .top-right .badge{background:rgba(0,212,255,.12);color:#00d4ff;border:1px solid rgba(0,212,255,.35);padding:3px 10px;border-radius:20px;font-size:11px;white-space:nowrap}.screen-layout .top .top-right .clock{font-size:12px;color:#7d92b8;white-space:nowrap}.screen-layout .body-row{flex:1;display:flex;min-height:0}.screen-layout .side{width:224px;flex:none;border-right:1px solid rgba(0,212,255,.18);background:rgba(9,13,32,.85);display:flex;flex-direction:column;padding:10px;gap:4px;overflow-y:auto}.screen-layout .side .navlabel{font-size:10px;color:#5f7396;letter-spacing:2px;margin:8px 6px 4px}.screen-layout .side .nav-item{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:10px;cursor:pointer;border:1px solid transparent;transition:.15s;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex:none;color:#dce9ff}.screen-layout .side .nav-item:hover{background:rgba(0,212,255,.06)}.screen-layout .side .nav-item.active{background:linear-gradient(90deg,rgba(0,212,255,.16),rgba(47,107,255,.08));border-color:rgba(0,212,255,.35)}.screen-layout .side .nav-item .ic{width:26px;height:26px;border-radius:7px;flex:none;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#04112a}.screen-layout .side .nav-item .nm{font-size:12.5px;flex:1;white-space:nowrap}.screen-layout .side .nav-item .ct{font-size:10px;color:#7d92b8;background:rgba(0,212,255,.08);border:1px solid rgba(0,212,255,.18);padding:1px 7px;border-radius:10px;white-space:nowrap}.screen-layout .side .nav-item .wdot{width:7px;height:7px;border-radius:50%;background:#ffa630;box-shadow:0 0 6px #ffa630;flex:none}.screen-layout .side .side-foot{margin-top:auto;padding:8px;font-size:10px;color:#5f7396;line-height:1.7;border-top:1px solid rgba(0,212,255,.08)}.screen-layout .main{flex:1;display:flex;flex-direction:column;min-width:0}.screen-layout .main .content{flex:1;overflow:auto;padding:12px 14px}.card{background:rgba(13,28,58,.72);border:1px solid rgba(0,212,255,.18);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;min-height:0}.card .card-hd{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex:none}.card .card-hd .bar{width:4px;height:14px;border-radius:2px;background:linear-gradient(#00d4ff,#2f6bff)}.card .card-hd b{font-size:14px}.card .card-hd .flex-fill{flex:1}.card .card-hd .cap{color:#7d92b8;font-size:11px}.card .card-bd{flex:1;min-height:0;position:relative}.grid{display:grid;gap:12px}.grid.c4{grid-template-columns:repeat(4,1fr)}.grid.c3{grid-template-columns:repeat(3,1fr)}.grid.c2{grid-template-columns:repeat(2,1fr)}.grid.row-trend{grid-template-columns:2fr 1fr;margin-top:12px}.kpi{flex:1;display:flex;flex-direction:column;justify-content:center;gap:4px;padding:4px 6px}.kpi .k-label{color:#7d92b8;font-size:12px}.kpi .k-value{font-size:26px;font-weight:700;color:#fff;font-family:DIN Alternate,Consolas,sans-serif}.kpi .k-value .unit{font-size:12px;color:#7d92b8;font-weight:400;margin-left:4px}.kpi .k-sub{color:#7d92b8}.kpi .delta,.kpi .k-sub{font-size:11px}.kpi .delta.up{color:#35e0a0}.kpi .delta.down{color:#ff4d6d}.cap-row{display:flex;align-items:center;justify-content:space-between;padding:9px 8px;border-radius:8px;cursor:pointer;transition:background .2s}.cap-row:hover{background:rgba(0,212,255,.08)}.cap-row .c-name{font-size:13px}.cap-row .c-meta{color:#7d92b8;font-size:11px}.cap-row .c-meta em{font-style:normal}.cap-row .c-val{color:#00d4ff;font-weight:700;font-size:15px}.dev-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;overflow:auto;height:100%}.dev-grid .dev-tile{aspect-ratio:16/10;border-radius:8px;border:1px solid rgba(0,212,255,.18);background:linear-gradient(160deg,rgba(0,30,70,.5),rgba(4,10,24,.9));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;position:relative}.dev-grid .dev-tile .cam-ico{font-size:22px}.dev-grid .dev-tile .d-name{font-size:12px}.dev-grid .dev-tile .d-code{color:#7d92b8;font-size:10px}.dev-grid .dev-tile .d-dot{position:absolute;top:6px;right:7px;width:8px;height:8px;border-radius:50%}.dev-grid .dev-tile .d-dot.on{background:#35e0a0;box-shadow:0 0 6px #35e0a0}.dev-grid .dev-tile .d-dot.off{background:#ff4d6d;box-shadow:0 0 6px #ff4d6d}.dev-grid .dev-tile .snap-link{position:absolute;top:4px;left:7px;color:#7d92b8;font-size:13px;line-height:1;padding:3px;border-radius:4px}.dev-grid .dev-tile .snap-link:hover{color:#00d4ff;background:rgba(0,212,255,.15)}.dev-grid .dev-tile:hover{border-color:rgba(0,212,255,.5)}.tb{width:100%;border-collapse:collapse;font-size:12px}.tb td,.tb th{padding:8px 6px;text-align:left;border-bottom:1px solid rgba(0,212,255,.08)}.tb th{color:#7d92b8;font-weight:400}.tag{padding:1px 8px;border-radius:9px;font-size:11px;border:1px solid}.tag.lv1{color:#ff4d6d;border-color:rgba(255,77,109,.45)}.tag.lv2{color:#ffa630;border-color:rgba(255,166,48,.45)}.tag.lv3{color:#8aa0cf;border-color:rgba(138,160,207,.45)}.tag.st1{color:#ff4d6d;border-color:rgba(255,77,109,.45)}.tag.st2{color:#ffa630;border-color:rgba(255,166,48,.45)}.tag.st3{color:#35e0a0;border-color:rgba(53,224,160,.45)}.rank-row{gap:10px;padding:7px 4px}.rank-row,.rank-row .rk{display:flex;align-items:center}.rank-row .rk{width:20px;height:20px;border-radius:6px;background:rgba(0,212,255,.12);color:#00d4ff;font-size:11px;justify-content:center;flex:none}.rank-row .rk.top{background:linear-gradient(135deg,#00d4ff,#2f6bff);color:#fff}.rank-row .r-name{font-size:12px;width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank-row .r-bar-wrap{flex:1;height:14px;background:hsla(0,0%,100%,.05);border-radius:7px;overflow:hidden}.rank-row .r-bar-wrap .r-bar{height:100%;border-radius:7px;background:linear-gradient(90deg,#2f6bff,#00d4ff)}.rank-row .r-val{color:#00d4ff;font-size:12px;width:70px;text-align:right}.day-hd{display:flex;align-items:center;gap:10px;padding:10px 4px}.day-hd b{color:#00d4ff}.day-hd .cnt{color:#7d92b8;font-size:12px}.snap-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}.snap-grid .snap-cell{border-radius:8px;overflow:hidden;border:1px solid rgba(0,212,255,.18);background:#0a1024;cursor:pointer}.snap-grid .snap-cell img{width:100%;aspect-ratio:16/10;-o-object-fit:cover;object-fit:cover;display:block}.snap-grid .snap-cell .s-foot{padding:5px 8px;font-size:11px;color:#7d92b8;display:flex;justify-content:space-between}.snap-grid .snap-cell:hover{border-color:rgba(0,212,255,.5)}.car-stream{display:flex;gap:10px;height:100%;align-items:stretch}.car-stream .car-card{flex:none;width:168px;border-radius:8px;border:1px solid rgba(0,212,255,.18);background:#0a1024;overflow:hidden;display:flex;flex-direction:column}.car-stream .car-card img{width:100%;height:86px;-o-object-fit:cover;object-fit:cover;display:block;cursor:pointer}.car-stream .car-card img:hover{opacity:.85}.car-stream .car-card .car-noimg{height:86px;display:flex;align-items:center;justify-content:center;color:#7d92b8;font-size:26px}.car-stream .car-card .car-info{padding:5px 8px;display:flex;flex-direction:column;gap:2px}.car-stream .car-card .car-info b{font-size:12px}.car-stream .car-card .car-info .car-plate{color:#00d4ff;font-size:12px;font-weight:700}.car-stream .car-card .car-info .car-meta{color:#7d92b8;font-size:10px}.img-preview-box{width:720px;background:#0c1830}.empty-tip{color:#7d92b8;font-size:12px}.empty-tip,.login-wrap{display:flex;align-items:center;justify-content:center;height:100%}.login-wrap{background:radial-gradient(900px 500px at 20% 10%,rgba(47,107,255,.25),transparent),radial-gradient(700px 400px at 85% 90%,rgba(0,212,255,.18),transparent),#060d1f}.login-wrap .login-card{width:380px;padding:36px 38px 30px;border-radius:16px;background:rgba(10,22,46,.85);border:1px solid rgba(0,212,255,.18);box-shadow:0 0 60px rgba(0,212,255,.08)}.login-wrap .login-card .lg-brand{display:flex;align-items:center;gap:10px;justify-content:center;margin-bottom:6px}.login-wrap .login-card .lg-brand .logo{width:44px;height:44px;border-radius:12px;-o-object-fit:contain;object-fit:contain;background:#000}.login-wrap .login-card .lg-brand b{font-size:20px;letter-spacing:3px}.login-wrap .login-card .lg-sub{text-align:center;color:#7d92b8;font-size:12px;margin-bottom:28px}.login-wrap .login-card .el-input__inner{background:rgba(4,12,28,.8);border-color:rgba(0,212,255,.18);color:#dce9ff}.el-dialog,.el-picker-panel,.el-select-dropdown{background:#0c1830!important;border-color:rgba(0,212,255,.18)!important}.el-select-dropdown__item{color:#dce9ff}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background:rgba(0,212,255,.1)}.popper__arrow{display:none!important}.el-dialog__body,.el-dialog__body .el-form-item__label,.el-dialog__title{color:#dce9ff}.el-dialog .el-input__inner{background:rgba(4,12,28,.8);border-color:rgba(0,212,255,.18);color:#dce9ff}.el-dialog .el-input__inner::-moz-placeholder{color:#7d92b8}.el-dialog .el-input__inner::placeholder{color:#7d92b8}.el-dialog .el-radio__label{color:#dce9ff}.el-dialog .el-radio__inner{border-color:rgba(0,212,255,.18);background:transparent}.el-dialog .el-radio__input.is-checked .el-radio__inner{background:#00d4ff;border-color:#00d4ff}.el-dialog .el-radio__input.is-checked+.el-radio__label{color:#00d4ff}.crng-body .el-input__inner,.dpanel-body .el-input__inner{background:rgba(4,12,28,.8);border-color:rgba(0,212,255,.18);color:#dce9ff}.crng-body .el-input__inner::-moz-placeholder,.dpanel-body .el-input__inner::-moz-placeholder{color:#7d92b8}.crng-body .el-input__inner::placeholder,.dpanel-body .el-input__inner::placeholder{color:#7d92b8}.el-picker-panel .el-date-picker__header-label,.el-picker-panel .picker-panel__icon-btn{color:#dce9ff}.el-picker-panel .el-date-table th{color:#7d92b8;border-bottom-color:rgba(0,212,255,.18)}.el-picker-panel .el-date-table td .cell,.el-picker-panel .el-date-table td span{color:#dce9ff}.el-picker-panel .el-date-table td.next-month span,.el-picker-panel .el-date-table td.prev-month span{color:#46587c}.el-picker-panel .el-date-table td.today .cell,.el-picker-panel .el-date-table td.today span{color:#00d4ff}.el-picker-panel .el-date-table td.current:not(.disabled) .cell,.el-picker-panel .el-date-table td.current:not(.disabled) span{background:#00d4ff;color:#04122b}.el-picker-panel .el-date-table td.disabled .cell,.el-picker-panel .el-date-table td.disabled span{color:#46587c}.el-picker-panel .el-date-table td.available:hover .cell,.el-picker-panel .el-date-table td.available:hover span{color:#00d4ff}.el-popover{background:#0d1430!important;border:1px solid rgba(0,212,255,.35)!important;color:#dce9ff!important;border-radius:12px!important;padding:12px 14px!important}.pbar{flex:none;gap:10px;flex-wrap:wrap}.pbar,.pbar h1{display:flex;align-items:center}.pbar h1{font-size:16px;font-weight:700;color:#dce9ff;gap:9px;margin:0}.pbar h1 i{width:4px;height:15px;border-radius:2px;display:inline-block;background:#00d4ff}.pbar .sub{font-size:11px;color:#7d92b8}.pbar .scopebar{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pbar .scopetip{font-size:10px;color:#5f7396}