/* PV Monitor Page Styles */
.layui-card-header {
    font-weight: bold;
}
.layui-badge-dot.layui-bg-green {
    width: 10px;
    height: 10px;
    margin-right: 8px;
}
.stat-item {
    margin-bottom: 6px;
}
.stat-value {
    font-weight: bold;
}
.device-list {
    border: 1px solid #eee;
    border-radius: 2px;
    height: 300px;
    overflow-y: auto;
}
.device-list li {
    padding: 10px 15px;
    cursor: pointer;
    border-bottom: 1px solid #f6f6f6;
    font-size: 13px;
}
.device-list li:hover {
    background-color: #f8f8f8;
}
.device-list li.active {
    background-color: #009688;
    color: #fff;
}
.layui-col-space15 {
    margin: 7.5px;
}
/* 对比表格样式 */
#compareTable + .layui-table-view .layui-table-body td {
    background: #fff !important;
}
#compareTable + .layui-table-view .layui-table-header th {
    background: rgb(245, 245, 245) !important;
}
/* 强制禁止页面整体滚动 */
html, body {
    height: 100%;
    overflow: hidden;
    margin: 0;
    padding: 0;
}
.region-sidebar {
    position: absolute;
    top: 15px;
    bottom: 15px;
    width: 14%;
    z-index: 100;
}
.region-sidebar .layui-card {
    display: flex;
    flex-direction: column;
}
.region-sidebar .layui-card-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
#regionTree {
    flex: 1;
    overflow-y: auto;
    padding-right: 5px;
}
.monitor-content {
    position: absolute;
    left: 15%;
    top: 15px;
    bottom: 15px;
    right: 15px;
    display: flex;
    flex-direction: column;
    z-index: 90;
}
.monitor-header {
    flex-shrink: 0;
}
.monitor-scroll-box {
    flex: 1;
    overflow-y: auto;
    padding-right: 5px;
}
.monitor-split-box {
    display: flex;
    height: 480px;
}
.monitor-split-left {
    flex: 1;
    padding: 20px;
    border-right: 1px solid #f0f0f0;
    display: flex;
    flex-direction: column;
}
.monitor-split-right {
    width: 300px;
    padding: 20px;
    flex-shrink: 0;
}
/* 单设备监测区域样式 */
.single-device-wrapper {
    display: flex;
    flex-direction: column;
    height: 100%;
}
.single-device-chart-area {
    flex: 1;
    min-height: 0;
}
.single-device-right-scroll {
    height: 100%;
    overflow-y: auto;
    padding-right: 5px;
}
/* 单设备卡片固定高度 */
.single-device-card .layui-card-body {
    height: 480px;
}
/* 表格容器滚动 */
.table-scroll-wrapper {
    max-height: 400px;
    overflow-y: auto;
    padding-right: 5px;
}

/* Global loading animation */
.think-page-loader .loader {
    top: 50%;
    left: 50%;
    width: 120px;
    height: 120px;
    margin: -60px 0 0 -60px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    background: transparent;
}

.think-page-loader .loader:before,
.think-page-loader .loader:after {
    display: none;
}

.think-page-loader .loader-ring,
.think-page-loader .loader-logo-wrap,
.think-page-loader .loader-glow {
    position: absolute;
}

.think-page-loader .loader-ring {
    inset: 10px;
    border-radius: 50%;
    border: 2px solid rgba(0, 150, 136, 0.15);
    border-top-color: rgba(0, 150, 136, 0.95);
    border-right-color: rgba(0, 150, 136, 0.45);
    animation: hs-logo-spin 1.5s linear infinite;
}

.think-page-loader .loader-logo-wrap {
    width: 74px;
    height: 74px;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 22px;
    background: transparent;
    box-shadow: none;
    animation: hs-logo-float 1.8s ease-in-out infinite;
}

.think-page-loader .loader-logo-image {
    width: 54px;
    height: 54px;
    object-fit: contain;
    display: block;
    filter: none;
    animation: hs-logo-breathe 1.8s ease-in-out infinite;
}

.think-page-loader .loader-glow {
    left: 50%;
    bottom: 14px;
    width: 84px;
    height: 18px;
    border-radius: 50%;
    transform: translateX(-50%);
    background: transparent;
    animation: none;
}

@keyframes hs-logo-spin {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

@keyframes hs-logo-float {
    0%,
    100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-8px);
    }
}

@keyframes hs-logo-breathe {
    0%,
    100% {
        transform: scale(1);
        opacity: 0.96;
    }
    50% {
        transform: scale(1.06);
        opacity: 1;
    }
}

@keyframes hs-logo-shadow {
    0%,
    100% {
        opacity: 0.3;
        transform: translateX(-50%) scale(0.92);
    }
    50% {
        opacity: 0.18;
        transform: translateX(-50%) scale(1.08);
    }
}

body.dashboard-no-top-menu .layui-layout-admin > .layui-header {
    display: none !important;
}

body.dashboard-no-top-menu .layui-layout-admin > .layui-body {
    top: 0 !important;
}

body.dashboard-no-top-menu .layui-layout-admin > .layui-body > .think-page-body {
    top: 0 !important;
}
