.ico {
    width: 1em;
    height: 1em;
    flex: none;
    display: inline-block;
    vertical-align: -0.125em;
}

.ico-sm { width: 0.875em; height: 0.875em; }
.ico-md { width: 18px; height: 18px; vertical-align: -0.2em; }
.ico-lg { width: 26px; height: 26px; vertical-align: 0; }
.ico-xl { width: 32px; height: 32px; vertical-align: 0; }

.icon-badge {
    width: 52px;
    height: 52px;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 18px;
    color: #38bdf8;
    background: rgba(56, 189, 248, 0.12);
    border: 1px solid rgba(56, 189, 248, 0.22);
}

.icon-badge--purple {
    color: #a78bfa;
    background: rgba(167, 139, 250, 0.12);
    border-color: rgba(167, 139, 250, 0.22);
}

.icon-badge--orange {
    color: #fb923c;
    background: rgba(251, 146, 60, 0.12);
    border-color: rgba(251, 146, 60, 0.22);
}

.icon-badge--red {
    color: #f87171;
    background: rgba(248, 113, 113, 0.12);
    border-color: rgba(248, 113, 113, 0.22);
}

.icon-badge--amber {
    color: #fbbf24;
    background: rgba(251, 191, 36, 0.12);
    border-color: rgba(251, 191, 36, 0.22);
}

.icon-badge--green {
    color: #34d399;
    background: rgba(52, 211, 153, 0.12);
    border-color: rgba(52, 211, 153, 0.22);
}

.icon-badge--slate {
    color: #94a3b8;
    background: rgba(148, 163, 184, 0.12);
    border-color: rgba(148, 163, 184, 0.22);
}

.icon-row {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.icon-row--tight { gap: 6px; }
.icon-row--lg { gap: 14px; }

.status-ico { vertical-align: -0.18em; }
.status-ico--good { color: #34d399; }
.status-ico--warn { color: #fbbf24; }
.status-ico--bad  { color: #f87171; }

.stars-row {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    color: #fbbf24;
}
.stars-row .ico { width: 14px; height: 14px; fill: currentColor; stroke-width: 1.2; }
