/* Tallapatra icon rendering contract (design system v0.3.2 §12). */

.tp-icon {
    width: var(--tp-icon-size, 20px);
    height: var(--tp-icon-size, 20px);
    display: inline-block;
    flex: none;
    color: currentColor;
    vertical-align: -0.125em;
}

.tp-icon--sm { --tp-icon-size: 16px; }
.tp-icon--md { --tp-icon-size: 20px; }
.tp-icon--nav { --tp-icon-size: 24px; }
.tp-icon--lg { --tp-icon-size: 32px; }

.tp-icon-text {
    display: inline-flex;
    align-items: center;
    gap: var(--tp-space-2);
}

.tp-icon-text--tight {
    gap: var(--tp-space-1);
}

.tp-icon-stack {
    display: inline-grid;
    place-items: center;
    width: var(--tp-icon-stack-size, 32px);
    height: var(--tp-icon-stack-size, 32px);
    color: var(--tp-text-secondary);
}

.tp-icon-stack--lg {
    --tp-icon-stack-size: 48px;
}

.tp-icon-spinner {
    animation: tp-icon-spin 0.9s linear infinite;
}

@media (prefers-reduced-motion: reduce) {
    .tp-icon-spinner {
        animation: none;
    }
}

@keyframes tp-icon-spin {
    to { transform: rotate(360deg); }
}
