.hm-glow--warning { box-shadow: 0 0 15px rgba(var(--bs-warning-rgb), .06); }
.hm-glow--danger  { box-shadow: 0 0 20px rgba(var(--bs-danger-rgb), .1); }

.hm-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }
.hm-dot--ok      { background: var(--bs-success); box-shadow: 0 0 6px rgba(var(--bs-success-rgb), .4); }
.hm-dot--warning { background: var(--bs-warning); box-shadow: 0 0 6px rgba(var(--bs-warning-rgb), .4); }
.hm-dot--danger  { background: var(--bs-danger);  box-shadow: 0 0 8px rgba(var(--bs-danger-rgb), .5); }

.hm-station-card { cursor: pointer; transition: transform .15s, box-shadow .2s; }

.hm-ring { position: relative; width: 52px; height: 52px; }
.hm-ring__svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.hm-ring__bg { fill: none; stroke: var(--bs-border-color); stroke-width: 3; }
.hm-ring__fill { fill: none; stroke-width: 3; stroke-linecap: round; transition: stroke-dasharray .6s ease; }
.hm-ring__fill--success { stroke: var(--bs-success); }
.hm-ring__fill--warning { stroke: var(--bs-warning); }
.hm-ring__fill--danger  { stroke: var(--bs-danger); }

.hm-ring__label {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.65rem;
}

/* Lista compatta contaore (MaintenanceHubPage) */
.hm-list .hm-row { border-bottom: 1px solid var(--bs-border-color); transition: background-color .15s; }
.hm-list .hm-row:last-child { border-bottom: none; }
.hm-list .hm-row:hover { background-color: rgba(var(--bs-primary-rgb), .04); }

/* Tutte le colonne hanno flex-basis fissa così la progress bar (unica flex-grow) ha sempre la stessa larghezza */
.hm-row__name { flex: 0 0 220px; min-width: 0; font-size: 0.85rem; overflow: hidden; }
.hm-row__progress { flex: 1 1 auto; min-width: 0; height: 8px; background: var(--bs-border-color); border-radius: 4px; overflow: hidden; }
.hm-row__pct { flex: 0 0 48px; font-size: 0.8rem; }
.hm-row__rem { flex: 0 0 80px; font-size: 0.9rem; }
.hm-row__badge { flex: 0 0 90px; font-size: 0.6rem; letter-spacing: 0.4px; text-align: center; padding: 0.35em 0.4em; }
.hm-row__action { flex: 0 0 36px; display: flex; justify-content: center; }

@media (max-width: 992px) {
    .hm-row__name { flex: 0 0 160px; font-size: 0.78rem; }
    .hm-row__pct { flex: 0 0 40px; font-size: 0.75rem; }
    .hm-row__rem { flex: 0 0 70px; font-size: 0.82rem; }
    .hm-row__badge { flex: 0 0 80px; }
}

@media (max-width: 768px) {
    .hm-row__name { flex: 0 0 120px; font-size: 0.75rem; }
    .hm-row__pct { display: none; }
    .hm-row__rem { flex: 0 0 60px; font-size: 0.78rem; }
    .hm-row__badge { flex: 0 0 70px; font-size: 0.55rem; }
}
