html,body{margin:0;padding:0;overflow:hidden}
#pano{/* 替换为krpano目标容器ID */
width:100%;height:100%}
.mapboxgl-popup{max-width:200px}
.mapboxgl-popup-content{padding:10px;text-align:center}
/* 输入框 */
.modal-mds{width:100%;height:100vh;position:fixed;top:0;left:0;background-color:rgba(0, 0, 0, 0.5);z-index:9999}
.modal-cons{width:310px;height:330px;background-color:#fff;position:absolute;top:48%;left:50%;transform:translate(-50%, -50%);padding:15px}
.modal-cons #const{color:#ff0000;text-align:center;font-size:19px;font-weight:500;position:relative;top:-25px}
.modal-cons .consimg{width:150px;height:150px;background-image:url(../img/qrcode1789280416350.jpg);background-size:cover;background-position:center;position:relative;top:-35px;left:50%;transform:translate(-50%, 0)}
.modal-cons .conset{font-size:15px;font-weight:500;text-align:center;position:relative;top:-25px}
.conset .consetp{color:#ff0000}
.modal-cons .consinput{width:100%;height:35px;position:relative;top:-10px}
.modal-cons .consinput input{width:240px;height:21px;border:2px solid #007f01;outline:none;font-size:13px;padding:5px;color:#ff5e00;position:absolute;left:-8px;caret-color:#007f01}
.modal-cons .consinput button{width:60px;height:35px;background-color:#51ae18;border:none;text-align:center;font-size:18px;color:#ffffff;cursor:pointer;position:absolute;right:-5px}
.modal-cons .consinput button:active{background-color:#007f01}
.modal-cons #conswe{color:#ff0000;font-size:14px;position:relative;top:-10px;left:10px}
.card{background:#e9edf6;padding:30px;border-radius:12px;box-shadow:0 4px 20px rgba(0, 0, 0, 0.08);width:100%;max-width:260px;position:fixed;top:50%;left:50%;transform:translate(-50%, -50%);z-index:99;display:none}
#caedout{position:absolute;right:10px;top:10px;cursor:pointer}
.cardd{width:100%}
.title{text-align:center;color:#333;margin-bottom:25px}
/* 卡密兑换弹窗 */
.carkey{width:270px;height:200px;background-color:#f1f1f1;position:fixed;top:40%;left:50%;transform:translate(-50%, -50%);box-shadow:4px 4px 10px rgba(39, 39, 39, 0.08);z-index:99;display:none}
.carli{position:absolute;top:-10px;left:18px/* background-color: #757676; */
}
.carspan{font-size:16px;position:absolute;top:40px;left:20px}
#keyout{position:absolute;right:90px;bottom:15px;/* width: 32px;
    height: 32px; */
/* background-color: #007bff; */
cursor:pointer}
#keyout .keyspan{text-align:center;font-size:19px;color:#575757}
.keyfro{position:relative;top:100px/* background-color: hsl(0, 73%, 51%); */
}
.carkey .input-group{position:absolute;bottom:15px;right:25px;cursor:pointer}
.input-group .inputbtn{width:100%;height:100%;color:#007bff;border:none;outline:none;text-align:center;font-size:19px;font-weight:700}
.form-group{width:220px;position:relative;top:50%;left:50%;transform:translate(-50%, -50%);margin-bottom:20px}
.form-group input{width:210px;padding:10px;font-size:1em;border-bottom:1px solid #080808;/* border-radius: 3px; */
outline:none;background-color:transparent;transition:all 0.1s;/* box-sizing: border-box; */
position:relative;top:10px;left:50%;transform:translateX(-50%);caret-color:#0b57cf;border:none}
.form-group .span{position:absolute;top:7px;left:-6px;padding:10px;font-size:1em;pointer-events:none;color:#ccc;transition:all 0.15s}
.form-group input:valid~.span,.form-group input:focus~.span{color:#0b57cf;transform:translateX(6px) translateY(-12px);font-size:0.8em;padding:0 5px;background-color:transparent}
.form-group input:valid,.form-group input:focus{/* border: 1.5px solid #0b57cf; */
border-bottom:1.5px solid #0b57cf}
.form-group input:not(:focus):invalid~.span,.form-group input:not(:focus):valid~.span{color:#757676}
.form-group input:not(:focus):invalid,.form-group input:not(:focus):valid{border-bottom:1px solid #757676}
.btn{width:160px;height:40px;border:none;border-radius:calc(40px / 2);font-size:20px;text-align:center;cursor:pointer;transition:opacity 0.3s;margin-left:50px}
.btn-primary{background:#0b57cf;color:white}
.btn-vip{background:#0b57cf;color:#ffffff;position:absolute;bottom:20px;left:10px}
.btn-sm{background:#eee;border:1px solid #ccc;padding:5px 10px;font-size:12px}
.btn:hover{opacity:0.9}
.avatar-box{position:relative;top:60px;left:10px;margin-bottom:20px}
.formtext{color:#fff}
.formtext ul li{color:#008cff}
.formtext ul li a{color:#008cff;font-size:20px}
/* 意见反馈 */
.logkey{width:100%;height:40px;margin-top:2vh;position:relative;border-bottom:1px solid #eee;border-top:1px solid #eee;cursor:pointer}
.logkeyic{width:30px;position:absolute;top:5px;left:9px}
.logkeyic svg{width:100%;height:100%}
.logkey span{position:absolute;top:10px;left:45px;font-size:15px;color:rgb(255, 255, 255)}
.logkey .logsvg{position:absolute;right:10px;top:5px}
/* 模型导入文件 */
.moxsi{width:100%;height:40px;margin-top:10px;position:relative;top:40%;transform:translateY(-50%)}
.moxsi span{position:absolute;top:10px;left:30px;color:#ccc}
/* 面板显示与隐藏控制 */
/* .panel {
    display: none;
}
.panel.active {
    display: block;
} */
/* 消息提示框基本样式 */
.result-box{padding:10px;margin-bottom:15px;border-radius:4px;font-size:13px;text-align:center;display:none;z-index:99999;position:fixed;top:20px;right:30px;width:200px;height:20px}
.result-box.success{background-color:#b4ffc6;color:#155724;border:1px solid #13bb3a}
.result-box.error{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}
/* 验证码表单行对齐 */
.verification-code-group{position:relative}
.verification-code-group .btn-secondary{width:100px;height:30px;position:absolute;top:8px;right:0;border-radius:5px;font-size:16px;background-color:#0b57cf;color:#fff}
/* 验证码倒计时 */
.countdown{position:absolute;top:0;right:0;color:#ccc}