html {
    scroll-behavior: smooth;
}

.hero {
    background: linear-gradient(135deg, #f8fbff 0%, #eef4ff 60%, #ffffff 100%);
    border-bottom: 1px solid #e9ecef;
}

.stat-card .icon {
    width: 56px;
    height: 56px;
    display: inline-grid;
    place-items: center;
    border-radius: 50%;
    background: #f1f5ff;
}

.table thead th {
    white-space: nowrap;
}

.section-icon {
    width: 40px;
    height: 40px;
    display: inline-grid;
    place-items: center;
    border-radius: 10px;
    background: #f8f9fa;
}

.link-external::after {
    content: "↗";
    margin-left: .25rem;
    font-size: .9em;
}

.badge-cap {
    font-size: .75rem;
}

.filter-input {
    max-width: 320px;
}

#infra img {
    height: 200px;
}