/* 占位层：透明占位，推开下方插件，维持上下间距 */
.alert-placeholder {
    height: 9px;
    margin: 0px auto 1px auto;
    box-sizing: border-box;
}
/* PC大屏（侧边栏展开 ≥768px） */
@media (min-width: 768px) {
    .alert-placeholder {
        width: calc(100% - 320px);
        max-width: 1200px;
        margin-left: 300px;
    }
}
@media (max-width: 767px) {
    .alert-placeholder {
        height: 3px;
        width: 100%;
        margin: 0 auto 1px auto;
    }
}
.alert-box {
    position: relative; /* 给关闭按钮绝对定位做参照 */
    background-color: rgba(255, 255, 255, 0.52); /* 框背景蓝色 */
    border: 1px solid(255, 255, 255, 0.62);
    color: #222; /* 内部文字白色适配蓝色背景 */
    border-radius: 6px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 10px 36px 10px 16px;
}
/* PC大屏 和占位宽度同步 */
@media (min-width: 768px) {
    .alert-box {
        width: calc(100% - 330px);
        margin-left: 300px;
    }
}
/* 移动端 */
@media (max-width: 767px) {
    .alert-box {
        width: 94%;
        margin: 0 auto;
        padding: 8px 30px 8px 12px;
        gap: 10px;
    }
}
/* 盾牌图标 绿色 */
.alert-box .shield-icon {
    width: 32px;
    height: 32px;
    flex-shrink: 0;
    fill: #36d399;
}
@media (max-width: 767px) {
    .alert-box .shield-icon {
        width: 26px;
        height: 26px;
    }
}

/* 文字容器 两行文字 */
.alert-text-wrap {
    display: flex;
    flex-direction: column;
    gap: 3px;
    flex:1;
}
.alert-title {
    font-size: 15px;
    font-weight: 500;
}
.alert-desc {
    font-size: 12px;
    color: #FF0000; /* 浅色小字，蓝色背景看得清 */
}
@media (max-width: 767px) {
    .alert-title {
        font-size: 14px;
    }
    .alert-desc {
        font-size: 11px;
    }
}

/* 右侧登录按钮：白色底色，蓝色文字 */
.alert-login-btn{
    background:#1677ff;
    color:#ffffff;
    border:none;
    border-radius:4px;
    padding:6px 16px;
    font-size:14px;
    cursor:pointer;
    white-space:nowrap;
    text-decoration:none;
}
/* hover 鼠标悬浮绿色背景 */
.alert-login-btn:hover{
    background:#22c55e;
    color:#ffffff;
}
@media (max-width:767px){
    .alert-login-btn{
        padding:4px 10px;
        font-size:13px;
    }
}

/* 关闭按钮 */
.alert-box .close-btn {
    position:absolute;
    right:10px;
    top: 50%;
    transform: translateY(-50%);
    text-decoration:none !important;
    color:#4080ff !important;
    font-size:20px;
    line-height:1;
    z-index:10;
    cursor:pointer;
}
@media (max-width:767px){
    .alert-box .close-btn{
        font-size:17px;
        right:8px;
    }
}
.alert-box .close-btn:hover {
    color:#FF0000 !important; /* 悬浮：纯白色 × */
}





@keyframes spin {
    from {transform:rotate(0deg)}
    to {transform:rotate(360deg)}
}
@keyframes pulse {
    0%,100% {opacity:0.5}
    50% {opacity:1}
}
.loading-wrap {
    min-height:380px;
    width:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:20px;
}
@media (min-width:998px) {
    .loading-wrap {
        min-height:730px;
    }
}
.loading-container-inner {
    display:flex;
    flex-direction:column;
    align-items:center;
}
.loading-circle-box {
    width:40px;
    height:40px;
    border:2px solid rgba(0,255,204,0.2);
    border-radius:50%;
    position:relative;
    margin-bottom:20px;
}
.loading-circle-box > div {
    position:absolute;
    inset:0;
    border:2px solid #00ffcc;
    border-radius:50%;
    border-top-color:transparent;
    animation:spin 1s linear infinite;
}
.loading-text-main {
    color:#00ffcc;
    font-size:18px;
    animation:pulse 1.8s ease-in-out infinite;
}
.loading-text-sub {
    color:#9ca3af;
    font-size:13px;
    margin-top:8px;
}