/* ============================================
   bim_control.css - 设备操控面板样式
   P7: 设备交互前端
   ============================================ */

/* ---- 信息浮层 ---- */
.bim-info-panel {
    position: absolute;
    top: 80px;
    right: 16px;
    width: 280px;
    max-height: calc(100% - 160px);
    overflow-y: auto;
    background: #161b22;
    border: 1px solid #30363d;
    border-radius: 8px;
    z-index: 100;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
}

.bim-info-header {
    padding: 10px 14px;
    background: #0d1117;
    border-bottom: 1px solid #21262d;
    font-size: 14px;
    font-weight: 600;
    color: #e6edf3;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.bim-info-close {
    background: none;
    border: none;
    color: #8b949e;
    cursor: pointer;
    font-size: 14px;
    padding: 2px 4px;
    border-radius: 4px;
}
.bim-info-close:hover {
    color: #e6edf3;
    background: #21262d;
}

.bim-info-body {
    padding: 12px 14px;
}

.bim-info-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 5px 0;
    font-size: 12px;
    color: #8b949e;
}

.bim-info-row span:last-child {
    color: #c9d1d9;
    text-align: right;
    word-break: break-all;
    max-width: 55%;
}

.bim-info-divider {
    border-top: 1px solid #21262d;
    margin: 8px 0;
}

.bim-info-hint {
    padding: 6px 0;
    font-size: 11px;
    color: #8b949e;
    font-style: italic;
}

.bim-info-actions {
    display: flex;
    gap: 8px;
    margin-top: 8px;
    flex-wrap: wrap;
}

.bim-info-btn {
    padding: 6px 12px;
    border-radius: 6px;
    border: 1px solid #30363d;
    background: #21262d;
    color: #c9d1d9;
    cursor: pointer;
    font-size: 12px;
    transition: background 0.15s, border-color 0.15s;
}
.bim-info-btn:hover {
    background: #30363d;
}
.bim-info-btn.primary {
    background: #238636;
    border-color: #238636;
    color: #fff;
}
.bim-info-btn.primary:hover {
    background: #2ea043;
}

/* 状态标签 */
.bim-status-tag {
    padding: 1px 6px;
    border-radius: 3px;
    font-size: 11px;
    font-weight: 500;
}
.bim-status-online {
    background: rgba(76, 175, 80, 0.2);
    color: #4caf50;
}
.bim-status-offline {
    background: rgba(158, 158, 158, 0.2);
    color: #9e9e9e;
}
.bim-status-alarm {
    background: rgba(244, 67, 54, 0.2);
    color: #f44336;
}
.bim-status-fault {
    background: rgba(255, 152, 0, 0.2);
    color: #ff9800;
}
.bim-status-maintenance {
    background: rgba(33, 150, 243, 0.2);
    color: #2196f3;
}
.bim-status-unknown {
    background: rgba(139, 148, 158, 0.2);
    color: #8b949e;
}

/* ---- 操控面板弹窗 ---- */
.device-control-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    animation: dcoFadeIn 0.15s ease-out;
}

@keyframes dcoFadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

.device-control-panel {
    width: 420px;
    max-height: 80vh;
    background: #161b22;
    border: 1px solid #30363d;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.5);
    animation: dcpSlideIn 0.2s ease-out;
}

@keyframes dcpSlideIn {
    from { transform: translateY(-20px); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}

.dcp-header {
    padding: 12px 16px;
    background: #0d1117;
    border-bottom: 1px solid #21262d;
    color: #e6edf3;
    font-size: 14px;
    font-weight: 600;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.dcp-close-btn {
    background: none;
    border: none;
    color: #8b949e;
    cursor: pointer;
    font-size: 16px;
    padding: 2px 6px;
    border-radius: 4px;
}
.dcp-close-btn:hover {
    color: #e6edf3;
    background: #21262d;
}

.dcp-body {
    padding: 16px;
    overflow-y: auto;
    max-height: calc(80vh - 56px);
}

.dcp-info {
    margin-bottom: 16px;
    font-size: 13px;
    color: #8b949e;
    line-height: 1.8;
    padding: 10px;
    background: #0d1117;
    border-radius: 8px;
    border: 1px solid #21262d;
}

.dcp-info strong {
    color: #c9d1d9;
}

.dcp-status-safe {
    color: #4caf50;
    margin-top: 4px;
}

.dcp-status-danger {
    color: #f85149;
    margin-top: 4px;
    font-weight: 600;
}

.dcp-commands {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 16px;
}

.dcp-cmd-btn {
    padding: 8px 16px;
    border-radius: 8px;
    border: 1px solid #30363d;
    background: #21262d;
    color: #c9d1d9;
    cursor: pointer;
    font-size: 13px;
    transition: background 0.15s, border-color 0.15s;
}
.dcp-cmd-btn:hover {
    background: #30363d;
}
.dcp-cmd-btn:active {
    transform: scale(0.97);
}

.dcp-cmd-btn.dangerous {
    border-color: #f85149;
    color: #f85149;
}
.dcp-cmd-btn.dangerous:hover {
    background: rgba(248, 81, 73, 0.15);
    border-color: #ff6b6b;
}

.dcp-log {
    max-height: 200px;
    overflow-y: auto;
    border: 1px solid #21262d;
    border-radius: 6px;
    padding: 8px 10px;
    background: #0d1117;
}

.dcp-log-title {
    color: #484f58;
    font-size: 11px;
    font-weight: 600;
    margin-bottom: 6px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.dcp-log-entry {
    color: #8b949e;
    font-size: 11px;
    padding: 3px 0;
    border-bottom: 1px solid rgba(48, 54, 61, 0.3);
    font-family: 'Cascadia Code', 'Consolas', monospace;
}
.dcp-log-entry:last-child {
    border-bottom: none;
}
