:host { display: inline-block; vertical-align: middle; } .icon-btn { display: inline-flex; align-items: center; justify-content: center; background: transparent; border: none; padding: 4px; margin: 0; color: #666666; cursor: pointer; outline: none; transition: color 0.15s ease-in-out, transform 0.1s ease-in-out; border-radius: 4px; i { display: inline-flex; align-items: center; justify-content: center; width: 13px; height: 13px; font-size: 13px; line-height: 1; } // Active state subtle scale down &:active:not(:disabled) { transform: scale(0.92); } // Focus ring for accessibility &:focus-visible { outline: 2px solid var(--tenant-primary); outline-offset: 2px; } // Disabled state &:disabled { color: #A0A0A0; cursor: not-allowed; pointer-events: none; } } // Hover/Active/Focus colors (non-disabled) .icon-btn:hover:not(:disabled), .icon-btn:focus-visible:not(:disabled), .icon-btn.hover-preview:not(:disabled), :host(.hover-preview) .icon-btn:not(:disabled) { color: var(--tenant-primary); } // Trash is special (uses danger color for hover/active) .icon-btn--trash { &:hover:not(:disabled), &:focus-visible:not(:disabled), &.hover-preview:not(:disabled) { color: var(--tenant-danger); } } :host(.hover-preview) .icon-btn--trash:not(:disabled) { color: var(--tenant-danger); } .icon-btn--user { i { width: 23px; height: 23px; font-size: 23px; } }