body {
    background: #f0f2f5;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}
.day-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(28px, 1fr));
    gap: 3px;
}
.day-cell {
    aspect-ratio: 1;
    border-radius: 4px;
    cursor: pointer;
    position: relative;
    transition: transform 0.1s;
}
.day-cell:hover { transform: scale(1.3); z-index: 2; box-shadow: 0 2px 8px rgba(0,0,0,0.2); }
.day-cell.today { border: 2px solid #1e3a5f; }
.day-cell.future { opacity: 0.3; cursor: default; }
.day-cell.future:hover { transform: none; }
.day-cell.no-data { background: #f1f5f9; display: flex; align-items: center; justify-content: center; }
.no-data-mark { font-size: 0.7rem; color: #94a3b8; font-weight: 700; }
.day-tooltip {
    display: none; position: absolute; bottom: 110%; left: 50%;
    transform: translateX(-50%); background: #1a1d23; color: #fff;
    padding: 2px 6px; border-radius: 4px; font-size: 0.6rem;
    white-space: nowrap; z-index: 5;
}
.day-cell:hover .day-tooltip { display: block; }

/* Légende dégradé */
.legend-grad {
    width: 120px; height: 12px;
    border-radius: 6px;
    background: linear-gradient(to right, #16a34a, #facc15, #ef4444, #991b1b);
}

/* Interruption colors: 0=green, 1=yellow, 2=orange, 3+=red */
.ir-0 { background: #16a34a; }  /* 0 interruption */
.ir-1 { background: #facc15; }  /* 1 interruption */
.ir-2 { background: #f97316; }  /* 2 interruptions */
.ir-3 { background: #ef4444; }  /* 3+ interruptions */
.ir-4 { background: #991b1b; }  /* 5+ interruptions */

/* Etat loading */
#status.online { color: #16a34a; }
#status.offline { color: #dc2626; }

/* Detail table */
#detail-body table { font-size: 0.8rem; }
#detail-body tr.KO { background: #fef2f2; }
