.kpi-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.focus-summary {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 0.75rem;
    margin-bottom: 0.5rem;
}

.focus-link {
    text-decoration: none;
    color: inherit;
}

.focus-link:hover {
    text-decoration: none;
    color: inherit;
}

.focus-stat {
    border: 1px solid var(--bs-border-color);
    border-radius: 0.75rem;
    padding: 0.9rem 1rem;
    background: var(--bs-light-bg-subtle, #f8f9fa);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.focus-link:hover .focus-stat {
    transform: translateY(-1px);
    box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.08);
}

.focus-stat .label {
    font-size: 0.8rem;
    color: #6c757d;
    margin-bottom: 0.2rem;
}

.focus-stat .value {
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.1;
}

.focus-stat.warning {
    border-color: #f0ad00;
    background: #fff8e1;
}

.focus-stat.warning .value {
    color: #b58100;
}

.focus-stat.info {
    border-color: #86b7fe;
    background: #eef4ff;
}

.focus-stat.info .value {
    color: #0d6efd;
}

.focus-stat.secondary {
    border-color: #c6c8ca;
    background: #f8f9fa;
}

.focus-stat.secondary .value {
    color: #495057;
}

.focus-stat.success {
    border-color: #a3cfbb;
    background: #edf7f0;
}

.focus-stat.success .value {
    color: #198754;
}

.focus-empty {
    border: 1px solid #a3cfbb;
    background: #edf7f0;
    color: #198754;
    border-radius: 0.75rem;
    padding: 1rem;
    font-weight: 500;
}

.focus-note {
    border: 1px solid #d3d8de;
    background: #f8f9fb;
    color: #495057;
    border-radius: 0.75rem;
    padding: 0.9rem 1rem;
}

.kpi-clickable:hover .card {
    transform: translateY(-1px);
    transition: transform 0.15s ease;
}

.dashboard-map {
    height: 460px;
    border-radius: 0.5rem;
}