/* Overwatch Dashboard Styles */
/* CSS Grid layout for embedded Grafana panels */

.overwatch-grid {
    display: grid;
    grid-template-columns: repeat(24, 1fr);
    grid-auto-rows: minmax(auto, auto);
    gap: 1rem;
    margin-bottom: 1rem;
}

/* Row 1: Health (6), Incidents (12), Services (6) */
.overwatch-panel--health {
    grid-column: span 6;
}

.overwatch-panel--incidents {
    grid-column: span 12;
}

.overwatch-panel--services {
    grid-column: span 6;
}

/* Row 2: Daemons (8), Queue (8), Drain Time (8) */
.overwatch-panel--daemons {
    grid-column: span 8;
}

.overwatch-panel--queue {
    grid-column: span 8;
}

.overwatch-panel--drain {
    grid-column: span 8;
}

/* Row 3: Error Rate (12), Key Metrics (12) */
.overwatch-panel--errors {
    grid-column: span 12;
}

.overwatch-panel--metrics {
    grid-column: span 12;
}

/* Panel styling */
.overwatch-panel {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    overflow: hidden;
}

.overwatch-panel iframe {
    display: block;
    width: 100%;
    background: transparent;
}

/* Responsive: Tablet */
@media (max-width: 1200px) {
    .overwatch-grid {
        grid-template-columns: repeat(12, 1fr);
    }

    .overwatch-panel--health {
        grid-column: span 4;
    }

    .overwatch-panel--incidents {
        grid-column: span 8;
    }

    .overwatch-panel--services {
        grid-column: span 12;
    }

    .overwatch-panel--daemons,
    .overwatch-panel--queue,
    .overwatch-panel--drain {
        grid-column: span 4;
    }

    .overwatch-panel--errors,
    .overwatch-panel--metrics {
        grid-column: span 6;
    }
}

/* Responsive: Mobile */
@media (max-width: 768px) {
    .overwatch-grid {
        grid-template-columns: 1fr;
    }

    .overwatch-panel--health,
    .overwatch-panel--incidents,
    .overwatch-panel--services,
    .overwatch-panel--daemons,
    .overwatch-panel--queue,
    .overwatch-panel--drain,
    .overwatch-panel--errors,
    .overwatch-panel--metrics {
        grid-column: span 1;
    }
}

/* Loading state for iframes */
.overwatch-panel iframe {
    transition: opacity 0.3s ease;
}

.overwatch-panel iframe:not([src]) {
    opacity: 0;
}

/* Dark mode support (if Grafana is in dark mode) */
@media (prefers-color-scheme: dark) {
    .overwatch-panel {
        background: #1f1f1f;
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
    }
}
